之前开发webservice客户端的时候遇到一个使用Axis2开发接口的厂家,查资料把Axis1和Axis2客户端的开发方式总结如下:
基于Axis1服务端的客户端实现:
/**
* 使用Axis Call Client动态调用WebService
* @param requestXml 请求报文
* @param wsdl webservice地址
* @param targetNamespace 命名空间
* @param webServiceMethod 访问的方法名
* @return
*/
public String getRespByAxisCallClient(String requestXml, String wsdl,String targetNamespace, String webServiceMethod){
String respXml = "";
try{
Service service = new Service();
Call call = (Call) service.createCall();
//设置要访问的WSDL地址
call.setTargetEndpointAddress(new URL(wsdl));
//设置要访问的方法名
call.setOperationName(new QName(wsdl,webServiceMethod));
//设置参数
call.addParameter("XMLFrom", XMLType.XSD_STRING, ParameterMode.IN);
//设置返回值类型
call.setReturnType(XMLType.XSD_STRING);
//调用服务
respXml = (String) call.invoke(new Object[] { requestXml.toString() });
}catch(Exception e){
logger.error("服务调用异常",e);
}
return respXml;
}
Call在线API:http://axis.apache.org/axis/java/apiDocs/org/apache/axis/client/Call.html
基于Axis2服务端的客户端实现:
方法一: