`
xpenxpen
  • 浏览: 704095 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用Axis2,spring开发jax-ws的配置

阅读更多
    jax-ws是java web service的标准规范,jdk本身就自带了API。但是如果要部署到服务器上的话,还需要一款实现。目前实现有metro(jax-ws ri), axis2, cxf。因为最近用到axis2,所以研究了一下axis2开发jax-ws的方法。编码我就不说了,遵循jax-ws规范就ok了。本文主要介绍一下axis2的配置。
    其实没啥好说的,官网文档已经说明了http://axis.apache.org/axis2/java/core/docs/servlet-transport.html
这里简单翻译一下。

1.web.xml的配置
首先配置AxisServlet来接受所有的以services/开头的路径请求。
<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>

要注意的是url-pattern设置的路径前缀必须和axis2.xml文件中的servicePath参数一致。默认值为services,所以配成如上路径就不用改axis2.xml了。

2.axis2.xml当然要拷贝到WEB-INF目录下,服务器启动时会读取此文件。

3.就这么简单,然后就ok了。启动服务器比如tomcat,访问http://localhost:8080/xx/services/XxService?wsdl就能看到wsdl,后面的开发方式和规范的jax-ws并无二异。

4.如果要支持https,需要改axis2.xml,配置上端口(比如tomcat里配置的8080给http,8443给https)
    <transportReceiver name="http" class="org.apache.axis2.transport.http.AxisServletListener">
        <parameter name="port">8080</parameter>
    </transportReceiver>

    <transportReceiver name="https" class="org.apache.axis2.transport.http.AxisServletListener">
        <parameter name="port">8443</parameter>
    </transportReceiver>


5.如果要集成spring,你的web service必须继承SpringBeanAutowiringSupport,这一点很重要,不继承的话会发现其他bean怎么也注入不了,急的双脚跳。
public class MyServiceImpl extends SpringBeanAutowiringSupport implements MyService {

     @Autowired
     private MyBusiness myBusiness;
}

如此其他bean(这里是MyBusiness)就能自动装配进我们的web service了。
具体可以参考spring3.1文档的20.5小节,Web services
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics