axis2+spring 发布service

来源:互联网 发布:女生 软件测试 编辑:程序博客网 时间:2024/04/25 15:39

此文章只是说明如何搭建,深入的原理并没有探讨。


说明:第一次部署成功后不知道什么原因发出了这种异常:javax.servlet.ServletException: File "/axis2-web/listSingleService.jsp" not found

头大,又搞了一遍,居然好了、、、原谅我不求甚解。


1.新建spring web项目。springaxis2.


2.可从http://ws.apache.org/axis2/ 下载Axis2的最新版本:

2.1本例下载axis2-1.6.2-war
2.2解压到axis2-1.6.2-war。然后解压文件axis2.war,解压成axis2。
2.3访问axis2/web-inf,拷贝modules、services、conf文件夹至springaxis2的web-inf下。

2.4现在springaxis2/webroot/web-inf目录:

目录结构如下:




3.拷贝axis2/web-inf/lib下的jar包至springaxis2的web-inf下。此图来自http://blog.csdn.net/zzq560/article/details/5627993。可根据实际情况自行选择jar包。

           


4.web.xml文件注册axis2服务

代码如:

        <!-- axis2 servlet begin--><servlet><servlet-name>AxisServlet</servlet-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><!-- axis2 servlet end-->

5.创建服务提供接口和实现类,就是普通的javabean。

    本例创建了接口Server.java和实现类ServerServiceImpl.java.很简单的实现类:

    

public class ServerServiceImpl implements ServerService {public String sayHello(String name) {return name+",hello";}}

6.注册ServerServiceImpl.java。普通的注入方式。此处略。

7.在WebRoor/WEB-INF/services/目录下建立目录webservice(这个名字可以随便取).然后再建立META-INF目录,然后再META-INF下建立services.xml文件,用于配置提供ws服务的bean。

目录结构:





本例的services.xml配置:

<serviceGroup><!--service name 对应请求url中wsdl之前的服务名http://127.0.0.1:8777/springaxis2/services/tradeServer?wsdl--><service name="tradeServer"><description>tradeServer Service </description><parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter><!-- SpringBeanName名字是固定的不能改          serverService是spring中注册的实现类的id(这个大家肯定很清楚了)        operation name:指定serverService中提供服务的方法名 --><parameter name="SpringBeanName">serverService</parameter><operation name="sayHello"><messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /></operation></service></serviceGroup>

7.启动tomatcat服务,浏览器输入:http://127.0.0.1:8777/springaxis2/services/tradeServer?wsdl

   出现如下页面,证明服务器端用axis2f发布webservice成功了!




如何模拟客户端?

可以参考如下链接。。。不写了。


参考文:

http://blog.csdn.net/shimiso/article/details/9946743

http://clq9761.iteye.com/blog/976029

http://blog.csdn.net/zzq560/article/details/5627993






0 0