使用AXIS2,可以方便的构建WebService的服务器端,也可以很方便的作为Cilent,来访问别的WebService。
下面根据工作中的经历,整理了一下,作为Cilent访问WebService的要点。
根据Axis2的官方文档,Client的DataBinding方式有3种,最简单的好像是ADB,那么我就选用的ADB。
1.普通方式(http 不通过proxy,对方也没有利用SSL)
// Generate Client
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
// Generate Endpoint
String webserviceurl = "http://www.abc.net/webservice/servicepage"; // for example.
EndpointReference targetEPR = new EndpointReference(webserviceurl);
options.setTo(targetEPR);
// Auto release transport.
options.setCallTransportCleanup(true);
// Generate Action
String ns = "http://www.abc.net/webservice";
String action = "getSomething";
QName opAction = new QName(ns, action);
// Generate Reqest parameters
ReqBean reqObj = new ReqBean();
reqObj.setParam1("param1");
reqObj.setParam2("param2");
Object[] opArgs = new Object[] { reqObj };
Class[] returnTypes = new Class[] { ArrayList.class };
Object[] response = null;
try {
response = serviceClient.invokeBlocking(opAction, opArgs, returnTypes);
} catch (AxisFault af) {
// Process exception.
}
ArrayList res = (ArrayList) response[0];
// Analyze the