一,引入pom依赖
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxrpc</artifactId>
<version>1.1</version>
</dependency>
二,话不多说上代码
/**
* webService调用接口(特别注意Call 的包和Service的包不要引错)
*
* @param wbURL webservice地址
* @param interfaceSpace 接口命名空间
* @param interfaceName 接口名称
* @param parameterSpaceURL 参数命名空间
* @param parameter 参数名称
* @param param 传递参数
* @return
*/
public static String getPostResponse(String wbURL,
String interfaceSpace, String interfaceName,
String parameterSpaceURL, String parameter,
JSONObject param) {
String result = "";
try {
logger.info(interfaceName + "_param:" + param.toString());
org.apache.axis.client.Service service = new org.apache.axis.client.Service();
org.apache.axis.client.Call call = (Call) service.createCall();
call.setTargetEndpointAddress(wbURL);
call.setOperationName(new QName(interfaceSpace, interfaceName)); // 设置要调用哪个方法
call.addParameter(new QName(parameterSpaceURL, parameter), // 设置要传递的参数
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// (标准的类型)
call.setUseSOAPAction(true);//是否使用soap协议
call.setSOAPActionURI(interfaceSpace + interfaceName);
call.setTimeout(10000);//设置超时
result = call.invoke(new Object[]{param.toString()}).toString();// 调用方法并传递参数
//result为请求结果,格式具体看提供方的返回,比如说JSON
logger.info("---------------" + result + "------------");
} catch (Exception ex) {
logger.error(ex);
}
return result;
}