如何在web应用中使用Axis2

Axis2可以处理WSDL并生成java代码,在服务端端称为Skeletons,在客户端称为Stubs。

Axis2的repsository是WEB-INF。axis2.xml是全局配置文件,在WEB-INF/conf/下。

 

第一件事:向web.xml中添加Axis2 Servlet

 

<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>


第二件事:编写服务

 

 

    public Book[] getBooks() {
        return new Book[]{onlyBook};
    }

    public Book findBook(String isbn) {
        if (isbn.equals(onlyBook.getIsbn()))
            return onlyBook;

        return null;
    }


上面是BookService.java中的一部分。

 

第三件事:编写服务的部署描述文件

 

<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>


可以使用RPCMessageReceiver部署POJO,也可以给服务指定一个schema。

 

第四件事:是否创建aar后缀文件?

aar文件用于hot deployment和服务隔离,但我们这里是webapp内部使用Axis2,所以使用Exploded deployment,也就是说我们要在WEB-INF下创建:

 

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


当你把这webapp放在容器中起动时,你可以通过访问:

 

http://yourhost:port/projectName/services/BookService?wsdl

查看这个服务的wsdl。

 

最后欢迎大家访问我的个人网站:1024s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值