Axis2 WebService服务端客户端Demo搭建

58 篇文章 0 订阅

服务端

新建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();
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值