示例代码-java请求webservice示例代码
org.apache.axis.client.Call call = new org.apache.axis.client.Call(url); call.setTimeout(PsbSwitchUtils.timeout); call.setOperationName(operationName); String result; try { result = (String) call.invoke(params); } catch (Exception e) { Psracer.error("WebServiceUtils异常", e, params, null); throw e; } return result;
遇到问题
解决方案
call对象添加soapActionURI设置 call.setSOAPActionURI("http://microsoft.com/webservices/AAA"); 原因:外部接口开发商使用.NET进行开发,在接口中设置了soapaction。具体的信息可以通过webservice的wsdl查看,在wsdl直接搜索action就能看到,不同方法可能对应不同的soapaction,在调用时需要注意。 参考链接:java调用webservice接口提示“服务器未能识别 HTTP 头 SOAPAction 的值“&&服务器无法处理请求。 --->; 未将对象引用设置到对象的实例_马云沈阳分云的博客-优快云博客_setsoapactionuri
添加后代码如下
org.apache.axis.client.Call call = new org.apache.axis.client.Call(url);
call.setTimeout(PsbSwitchUtils.timeout);
call.setOperationName(operationName);
call.setSOAPActionURI("http://microsoft.com/webservices/AAA");
String result;
try {
result = (String) call.invoke(params);
} catch (Exception e) {
Psracer.error("WebServiceUtils异常", e, params, null);
throw e;
}
return result;
心得体会
这次解决这个问题主要的是给我带来一种解决问题的思路。在这里分享并记录
1.根据错误提示查找原因
2.根据原因修补错误
3.如不知道如何修补,查阅相关资料学习如何修补当前错误,最终解决问题