我用axis开发客户端调用web service,遇到一个非常奇怪的问题:
如果用命令行运行,没有问题,可以正确调用,用抓包工具检查可以看到HTTP/XML请求和响应
如果在eclipse里面单步调试,总是出错,检查网络包,发现根本没有请求发送到server有什么可能的原因么?
谢谢!
如果用命令行运行,没有问题,可以正确调用,用抓包工具检查可以看到HTTP/XML请求和响应
如果在eclipse里面单步调试,总是出错,检查网络包,发现根本没有请求发送到server有什么可能的原因么?
谢谢!
命令行允许客户端程序也没问题如果在eclipse里面单步,下面的代码会出现问题:
org.apache.axis.client.Call _call = createCall();
_call.setOperation(_operations[1]);
_call.setUseSOAPAction(true);
_call.setSOAPActionURI("http://10.64.37.171/VerifyManageString");
_call.setEncodingStyle(null);
_call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
_call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
_call.setOperationName(new javax.xml.namespace.QName("http://10.64.37.171/", "VerifyManageString")); setRequestHeaders(_call);
setAttachments(_call);
try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {agentID, authStr}); if (_resp instanceof java.rmi.RemoteException) {
throw (java.rmi.RemoteException)_resp;
}
else {
extractAttachments(_call);
java.util.Map _output;
_output = _call.getOutputParams();
try {
verifyManageStringResult.value = ((java.lang.Integer) _output.get(new javax.xml.namespace.QName("http://10.64.37.171/", "VerifyManageStringResult"))).intValue();
} catch (java.lang.Exception _exception) {
verifyManageStringResult.value = ((java.lang.Integer) org.apache.axis.utils.JavaUtils.convert(_output.get(new javax.xml.namespace.QName("http://10.64.37.171/", "VerifyManageStringResult")), int.class)).intValue();
}
红色部分结果为null,结果抛出NullPointerException.