其他分享
首页 > 其他分享> > Axis2 WebService服务端客户端Demo搭建

Axis2 WebService服务端客户端Demo搭建

作者:互联网

服务端

新建web项目WebServiceProject

1、axis2官网下载如下文件

下边两个是eclipse的服务发布插件,解压之后复制到eclipse安装目录plugins文件夹

 

将war包放在tomcat中解压运行,下标的四个文件夹复制到WebServiceProject项目的WEB-INF目录下

2、配置WebServiceProject项目web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>WebServiceProject</display-name>
  
   <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>
</web-app>

3、编写服务端接口代码

4、使用eclipse插件生成arr包

右键项目->NEW->Other

选到classes一级

 

 

生成arr包到 WEB-INF/services目录下

 

5、部署 启动tomcat

访问http://localhost:8606/WebServiceProject/services/ClientService?wsdl   可以看到接口的描述信息

/ services是web.xmlp配置的  / ClientService是上边配置的

 

 

 

客户端

package com.lxy;

import javax.xml.namespace.QName;

import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

public class Main {
	public static void main(String[] args) throws Exception {
		try {
			// axis2 客户端代码
			
			// 指定调用WebService的URL
			String url = "http://localhost:8606/WebServiceProject/services/ClientService?wsdl";

			EndpointReference targetEPR = new EndpointReference(url);
			
			// 使用RPC方式调用WebService
			RPCServiceClient serviceClient = new RPCServiceClient();
			Options options = serviceClient.getOptions();
			// 确定目标服务地址
			options.setTo(targetEPR);

			QName qname = new QName("http://lxy.com", "testMethod");
			
			// 指定testMethod方法的参数值
			Object[] parameters = new Object[] { "13" };

			// 指定testMethod方法返回值的数据类型的Class对象
			Class[] returnTypes = new Class[] { String.class };

			// 调用 testMethod方法并输出该方法的返回值
			Object[] response = serviceClient.invokeBlocking(qname, parameters, returnTypes);
			// String r = (String) response[0];
			String r = (String) response[0];
			System.out.println(r);

		} catch (AxisFault e) {
			e.printStackTrace();
		}
	}
}

标签:WebService,axis2,Demo,WebServiceProject,Axis2,import,apache,new,String
来源: https://blog.csdn.net/xyjy11/article/details/113406854