【译】如何将基于Axis2的Web Service集成到自己的webapp?

原文地址:http://wso2.org/library/90


Q:如何将基于Axis2的Web Service集成到自己的webapp?
A:让我们试着发布一个简单的Axis2到我们自己的webapp中。首先我们需要将Axis2 Servlet写到我们的web.xml中。看下面一段:

<web-app>
  <servlet>
    <servlet-name>AxisServlet</servlet-name>
    <display-name>Apache-Axis Servlet</display-name>
    <servlet-class>
      org.apache.axis2.transport.http.AxisServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
</web-app>

接下来,我们需要一个简单的web service。让我们看一下BookService.java中的2个函数片段findBook和getBooks(译者注:其总的Book类需要自己另外实现,很简单,所以作者和译者都没有给出:)):

public Book[] getBooks() {
  return new Book[]{onlyBook};
}
public Book findBook(String isbn) {
   if (isbn.equals(onlyBook.getIsbn()))
      return onlyBook;
   return null;
}

接下来,我们需要为BookService写一个部署描述。正如你看到的,你可以用RPCMessageReceiver发布一个POJO,你也可以为web service本身的schema指定一个namespace。

<serviceGroup>
        <service name="BookService"             targetNamespace="http://ws.apache.org/axis2/samples/book/">
        <description>Book sample service</description>
        <schema schemaNamespace="http://ws.apache.org/axis2/samples/book/xsd/"/>
        <parameter name="ServiceClass" locked="false">samples.demo.BookService</parameter>
                <operation name="getBooks">
                        <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
                </operation>
        <operation name="findBook">
            <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
        </operation>
        </service>
</serviceGroup>

接下来我们需要准备aar吗?aar是为了热部署和service的隔离,这个是一个集成,所以接下来的“Exploded deployment option”意思是在WEB-INF中建立一个如下的目录结构:

\---WEB-INF
    |   web.xml
    |
    \---services
        \---BookService
            \---META-INF
                    services.xml

通常我们都会将BookService.aar发布到services目录中,这里,我们建立一个为BookService的目录并将部署描述文件(services.xml)放到META-INF目录下。恩,我们忘记什么了吗?是的,如何使用maven2的环境尽行简单的构建?一下是我们maven2的结构:

\---book
    |   pom.xml
    |   README
    |
    \---src
        +---main
        |   |   log4j.properties
        |   |
        |   \---samples
        |       \---demo
        |               Book.java
        |               BookService.java
        |        +---test
        \---webapp
            \---WEB-INF
                |   web.xml
                |
                \---services
                    \---BookService
                        \---META-INF
                                services.xml

  

所有需要的jars通过maven2都自动从Apache和Ibiblio下载了。因此,你甚至可以不下载Axis2就可以发布这个简单的工程。所有你需要处理的就是解压zip包如下:

$ mvn install war:war

然后将等到的war文件重命名为axis2.war,你可以将它放到任何servlet引擎。一旦你的servlet引擎启动,你可以通过如下service看到wsdl:
http://yourhost:port/axis2/services/BookService?wsdl

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值