webservice 客户端调用--axis
package com.morning.webservice.client.test;
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 AxisServiceTest {
public static void main(String[] args) throws AxisFault {
testSayHello();
}
private static void testSayHello() throws AxisFault {
//输入参数
Object[] opSayHelloArgs = new Object[]{"Mr Chen"};
//输出结果是String类型
Class[] returnTypes = new Class[]{String.class};
RPCServiceClient serviceClient = new RPCServiceClient();
//EndpointReference 和 QName 我们都可以从 WSDL 中得到
String address = "http://127.0.0.1:8080/axis2/services/AxisService";
EndpointReference targetEPR = new EndpointReference(address);
Options options = serviceClient.getOptions();
options.setTo(targetEPR);
//调用webService服务,传递操作名称QName,操作所需参数,返回类型,获得返回结果
//这个调用封装了发起soap请求访问webserive与解析soap响应结果的解析
QName opSayHello = new QName("http://service.axis.morning.com","sayHello");
Object[] response = serviceClient.invokeBlocking(opSayHello, opSayHelloArgs, returnTypes);
String result = (String) response[0];
System.out.println(result);
}
}