AXIS2部署WebService实战

一、下载部署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服务~





在客户端调用axis的Service和Call的方式访问webservice服务。

(接口相关:之前写的使用AXIS2部署WEBSERVCE服务-->AXIS2部署WebService实战

一、首先需要引入AXIS的jar包,如下:

axis.jar
axis-ant.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
dom4j-1.6.1.jar
jaxrpc.jar
saaj.jar
wsdl4j.jar

二、调用代码

package com.test;

import java.net.URL;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

/**
 * 
* @since:    2014年5月7日   
* @author    ZhangChen
* @description:WebService客户端调用测试
 */
public class Test {
public static void main(String[] args) throws Exception {
try
{
String url = "http://localhost:8080/CACore/services/QuerySaleInfo?wsdl";
Service serv = new Service();

Call call = null;
call = (Call) serv.createCall();

//下面这两段代码,是为了处理返回的特殊类型写的,
//如果只是简单地返回基本类型,可以不用写这两段代码;
QName qn=new QName("http://service.axis2.component.newtouch.com", "querySaleInfo");  

// 注册序列化和反序列化类
call.registerTypeMapping(String.class, qn,
	new org.apache.axis.encoding.ser.BeanSerializerFactory(String.class, qn),
new org.apache.axis.encoding.ser.BeanDeserializerFactory(String.class, qn));

call.setTargetEndpointAddress(new URL(url));

/*
 * 这里的new QName的URL,就是要指向的命名空间的名称了,
 * 这个URL地址在你的wsdl打开后可以看到的,上面有写着
 * targetNamespace="http://www.foresee.com.cn/spiderweb/webservice",
 * 这个就是你的命名空间值了;
 */
call.setOperationName(qn);


// 接口的参数
call.addParameter("xml", org.apache.axis.Constants.XSD_STRING
		,javax.xml.rpc.ParameterMode.IN);
//设置返回类型 
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); 

call.setSOAPActionURI(url);

String xml = "<?xml version=\"1.0\" encoding=\"GBK\"?>\r\n"+
		"<Root>"+
		  "<TransData>"+
		"<TransHead>"+
		 "<TransType>211313</TransType>"+
		  "<TransDate>2014-04-18</TransDate>"+
		  "<TransTime>18:12:40</TransTime>"+
		  "<Reserve>"+
			"<Resv1></Resv1>"+
			"<Resv2></Resv2>"+
			"<Resv3></Resv3>"+
			"<Resv4></Resv4>"+
			"<Resv5></Resv5>"+
		  "</Reserve>"+
		"</TransHead>"+
		"<TransBody>"+
		  "<AgentCode>010100000001026</AgentCode>"+
		  "<AgentLicNo>002</AgentLicNo>"+
		  "<AgentGroup></AgentGroup>"+
		  "<Resv1></Resv1>"+
		  "<Resv2></Resv2>"+
		  "<Resv3></Resv3>"+
		  "<Resv4></Resv4>"+
		  "<Resv5></Resv5>"+
		"</TransBody>"+
	  "</TransData>"+
	"</Root>";
	String xml1 = (String) call.invoke(new Object[] {xml});
 	System.out.println(xml1);
}
 catch (Exception e) {
		System.err.println(e.toString());
		 }
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Axis2 是一个用于开发和部署 Web 服务的开源框架。下面是一个使用 Axis2 开发 Web 服务的实战步骤: 1. 安装 Axis2:首先,你需要下载并安装 Axis2。你可以从 Axis2 的官方网站上获得最新版本的下载链接。安装过程可能会因你使用的操作系统而有所不同,但通常情况下,你只需将下载的二进制文件解压到你选择的目录即可。 2. 创建 Web 服务:一旦安装完成,你可以通过使用 Axis2 提供的工具来创建 Web 服务。其中一个常用的工具是 Axis2 Codegen 工具,它可以根据给定的 WSDL(Web 服务描述语言)文件生成相关的代码。你可以使用以下命令来运行 Codegen 工具: ``` java -cp <axis2_home>/lib/* org.apache.axis2.wsdl.WSDL2Code -uri <path_to_wsdl> -d <output_directory> ``` 其中 `<axis2_home>` 是 Axis2 的安装目录,`<path_to_wsdl>` 是你的 WSDL 文件的路径,`<output_directory>` 是生成代码的输出目录。 3. 实现 Web 服务:生成的代码将包含一个服务接口和其实现类。你需要在实现类中编写具体的逻辑来处理来自客户端的请求。这包括处理请求参数、调用其他服务或资源,并返回响应结果等。 4. 部署 Web 服务:一旦你完成了 Web 服务的实现,你可以使用 Axis2 提供的工具来部署它。其中一个常用的工具是 Axis2 WAR Deployer 工具,它可以将你的 Web 服务打包成一个 WAR 文件,并将其部署到支持 JavaEE 的应用服务器上。你可以使用以下命令来运行 WAR Deployer 工具: ``` java -cp <axis2_home>/lib/* org.apache.axis2.transport.http.AxisServletDeployer -l <webapps_directory> -w <axis2_war_file> ``` 其中 `<axis2_home>` 是 Axis2 的安装目录,`<webapps_directory>` 是你的应用服务器的 Webapps 目录,`<axis2_war_file>` 是生成的 WAR 文件。 5. 调用 Web 服务:一旦你的 Web 服务成功部署,你可以通过使用 SOAP 客户端来调用它。你可以使用任何支持 SOAP 的客户端技术(如 Java 的 JAX-WS、.NET 的 WCF 等)来创建一个客户端并调用你的服务。 这是一个简单的 Axis2 开发 Web 服务的实战过程。希望对你有所帮助!如果你有更多关于 Axis2 或 Web 服务开发的问题,我将很乐意回答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值