Webservice 調用出現 java.net.SocketTimeoutException

今天發現在weblogic上的測試項目時,出現了這個錯誤,
<pre class="plain" name="code">Strings - Missing key history.btn.history for locale zh_CN, using en_US instead
AxisFault
 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(HTTPS
ender.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跟蹤,發現服務器的有些操作太長時間導致,調整服務器端代碼解決






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章