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