此文章只是说明如何搭建,深入的原理并没有探讨。
说明:第一次部署成功后不知道什么原因发出了这种异常: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.youkuaiyun.com/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.youkuaiyun.com/shimiso/article/details/9946743
http://clq9761.iteye.com/blog/976029
http://blog.youkuaiyun.com/zzq560/article/details/5627993