axis2 客户端调用服务器端
//方法一:
package com.abin.lir.axis2.client;
package com.abin.lir.axis2.client;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class UserClient {
public static void main(String[] args) {
try {
ServiceClient sc = new ServiceClient();
Options opts = new Options();
opts.setTo(new EndpointReference("http://localhost:9090/universal/services/play"));
opts.setAction("urn:echo");
opts.setTimeOutInMilliSeconds(10000);
sc.setOptions(opts);
OMElement res = sc.sendReceive(createPayLoad());
System.out.println(res);
} catch (AxisFault e) {
e.printStackTrace();
}
}
public static OMElement createPayLoad(){
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace("http://localhost:9090/universal/services/play", "nsl");
OMElement method = fac.createOMElement("getPassengerInfos",omNs);
OMElement value = fac.createOMElement("userID",omNs);
value.setText("1024");
method.addChild(value);
return method;
}
}
//方法二
//方法二
package com.abin.lir.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;
public class RPCClient {
public static void main(String[] args) throws AxisFault {
// 使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
// 指定调用WebService的URL
EndpointReference targetEPR = new EndpointReference(
"http://localhost:9090/universal/services/play");
options.setTo(targetEPR);
// 指定方法的参数值
Object[] requestParam = new Object[] {"1024"};
// 指定方法返回值的数据类型的Class对象
Class[] responseParam = new Class[] {String.class};
// 指定要调用的getGreeting方法及WSDL文件的命名空间
QName requestMethod = new QName("http://localhost:9090/universal/services/play", "getPassengerInfos");
// 调用方法并输出该方法的返回值
try {
System.out.println(serviceClient.invokeBlocking(requestMethod, requestParam, responseParam)[0]);
} catch (AxisFault e) {
e.printStackTrace();
}
}
}
//方法三
package com.abin.lir.axis2.client;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class AXIOMClient {
private static EndpointReference targetEPR = new EndpointReference(
"http://localhost:9090/universal/services/play");
public static OMElement getPassengerInfos(String symbol) {
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace(
"http://localhost:9090/universal/services/play",
"tns");
OMElement method = fac.createOMElement("getPassengerInfos", omNs);
OMElement value = fac.createOMElement("userID", omNs);
value.addChild(fac.createOMText(value, symbol));
method.addChild(value);
return method;
}
public static void main(String[] args) {
try {
OMElement getPassenger = getPassengerInfos("1024");
Options options = new Options();
options.setTo(targetEPR);
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
ServiceClient sender = new ServiceClient();
sender.setOptions(options);
OMElement result = sender.sendReceive(getPassenger);
String response = result.getFirstElement().getText();
System.err.println("Current passengers: " + response);
} catch (Exception e) {
e.printStackTrace();
}
}
}