张晨的个人博客

AXIS2部署WebService实战

张晨的个人博客2014-04-26综合技术 4528 0A+A-

    先说下大概的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服务

 

文章关键词
axis2
webservice
发表评论