Webservice 调用出现 java.net.SocketTimeoutException

来源:互联网 发布:程序员未来前景怎么样 编辑:程序博客网 时间:2024/06/11 09:49
今天发现在weblogic上的测试项目时,出现了这个错误,
<pre class="plain" name="code">Strings - Missing key history.btn.history for locale zh_CN, using en_US insteadAxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.net.SocketTimeoutException: Read timed out faultActor: faultNode: faultDetail:        {http://xml.apache.org/axis/}stackTrace:java.net.SocketTimeoutException: Read timed out        at java.net.SocketInputStream.socketRead0(Native Method)        at java.net.SocketInputStream.read(SocketInputStream.java:129)        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)        at java.io.BufferedInputStream.read(BufferedInputStream.java:237)        at org.apache.axis.transport.http.HTTPSender.readHeadersFromSocket(HTTPSender.java:583)
通过浏览器测试webservice地址发现可以正常访问,检查代码
Call call = (Call)service.createCall();      call.setMaintainSession(true);      call.setTimeout(Integer.valueOf(<span style="font-size:24px;background-color: rgb(255, 0, 0);"><strong>30000</strong></span>));      call.setTargetEndpointAddress(new URL(url));      call.setOperationName(new QName(nameSpace, method));      call.addParameter(new QName(nameSpace, message[0]),         XMLType.XSD_STRING,         ParameterMode.IN);      call.addParameter(new QName(nameSpace, message[1]),         XMLType.XSD_STRING,         ParameterMode.IN);      call.setUseSOAPAction(true);      call.setReturnType(Constants.XSD_STRING);      call.setSOAPActionURI(nameSpace + method);      obj = call.invoke(new Object[] { parameter[0], parameter[1] });


发现上面的设置时间太短导致服务器端没有来得及响应,客户端就断开连接导致,因此服务器再次调整log跟踪,发现服务器的有些操作太长时间导致,调整服务器端代码解决





0 0