先说下大概的webservice服务流程,服务接收String型的xml 解析后再返回String型的xml是使用RPC的方式返回自己定义的格式;
关于java对象和xml格式转详见我之前写的--> 使用XStream 转换Java对象和XML之间相互转换实战代码
一、下载部署AXIS2
我这里是把AXIS2部署的自己的项目中,首先去AXIS2的官网下载二进制开发包 -->直接点击下载 axis2-1.6.2-bin.zip
或者去官网下载 --> http://axis.apache.org/axis2/java/core/download.cgi#std-bin 如图选择zip版本就好了
二、jar包选择,比较精选了23个如图:
三、编写服务用于发布
package com.newtouch.component.axis2.service; import com.axis2.util.SalesInfoUtil; /** * @since: 2014年4月14日 * @author ZhangChen * @description:axis2 服务类 */ public class QuerySaleInfo { public String querySaleInfo(String xml){ SalesInfoUtil siu = new SalesInfoUtil(); //调用方法类 //analysisXML返回的是一个封装好的String的xml格式数据 //处理逻辑都在analysisXML方法里这里不多说了 return siu.analysisXML(xml); }
四、web.xml中添加代码
<!-- axis2 start--> <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 end-->
五、在WEB-INF目录下添加services文件夹添加services.xml发布服务:
1、 从二进制开发包中把\axis2-1.6.2-bin\axis2-1.6.2\repository\下的services文件夹(里面有services.list和version.aar)复制到WEB-INF下
2、 WEB-INF-->services-->MyService-->META-INF-->services.xml
特别注意:在weblogic中部署需要把我们写好的services.xml替换掉services目录下version-1.6.2.aar中的services.xml文件否则会报异常:<Error> <HTTP> <BEA-101214> <Included resource or file "/axis2-web/listSingleService.jsp" not found from requested resource "/CACore/services/QuerySaleInfo".>
六、services.xml内容 (注意本次发布的服务使用的是RPC方式)
<service name="QuerySaleInfo"> <description> MyService </description> <parameter name="ServiceClass"> com.axis2.service.QuerySaleInfo </parameter> <operation name="querySaleInfo"> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </messageReceivers> </service>
七、查看发布的服务
1、查看wsdl:
http://localhost:8080/CACore/services/QuerySaleInfo?wsdl
2、查看发布服务(这个不能直接查看需要把二进制安装包中的axis2-we(找不到的:axis2-1.6.2-bin\axis2-1.6.2\webapp\axis2-web)b复制到WebRoot目录下与WEB-INF同级,里面的文件夹全部要jsp只要listServices.jsp就好)
http://localhost:8080/CACore/services/listServices 结果如图:里面的QuerySaleInfo就是发布的服务
这样我们的AXIS2 webservice服务就部署成功了,后续送上客户端使用axis的Server和Call调用AXIS2发布的webservice服务~
客户端调用接口方法博客已经写好了跳转地址: 客户端使用Service和Call调用AXIS2的webservice服务