1.导入需要的jar包
package com.axis2.client;
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;
import com.chni.btmachine.bean.KioskUserInfo;
/**
* 使用Axis2调用webservice服务
* @author Administrator
*
*/
public class TestAxis2Client {
public void qeury(){
//使用RPC调用webservice
RPCServiceClient rpcClient=null;
try {
//创建客户端对象
rpcClient = new RPCServiceClient();
//创建options对象
Options options= rpcClient.getOptions();
//指定webservices调用的url地址
EndpointReference endp=new EndpointReference("http://xxx:8443/HealthCloud/services/downloadWebService");
//设置to
options.setTo(endp);
//指定调用的WSDL命名空间(<wsdl:definitions targetNamespace="http://webservice.kiosk.tsinghua.edu">)
//和 调用方法名称
QName qname=new QName("http://webservice.kiosk.tsinghua.edu", "getUser");
//指定返回值数据类型
Class[] cs=new Class[]{KioskUserInfo[].class};
//指定方法的参数 (使用数组形式,多个参数写在后面即可)
Object obj[]=new Object[]{"1","2010-12-1"};
//调用服务器端方法 第一个参数表示调用的方法,第二个参数表示传递过去的参数,第三个参数表示返回的类型
//方法返回一个Object数组 取第一个即可
KioskUserInfo[] kios=(KioskUserInfo[])rpcClient.invokeBlocking(qname, obj,cs)[0];
// rpcClient.cleanup();
System.out.println(kios);
for(KioskUserInfo k:kios){
System.out.println(k.getAddress());
}
} catch (AxisFault e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws AxisFault{
TestAxis2Client client=new TestAxis2Client();
client.qeury();
}
}
原文:http://blog.csdn.net/blogluoqi/article/details/21370535