【问题标题】:Web-service invoke timeout issueWeb服务调用超时问题
【发布时间】:2012-02-26 01:21:03
【问题描述】:

我正在尝试通过存根调用 Web 服务。 它是 wsdl 网络服务

但我在调用它时遇到以下错误。

轴故障 故障代码:{http://schemas.xmlsoap.org/soap/envelope/}Server.userException 故障子代码: faultString:java.net.SocketTimeoutException:读取超时 故障演员: 故障节点: 故障详情: {http://xml.apache.org/axis/}stackTrace:java.net.SocketTimeoutException:读取超时 在 org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222) 在 org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) 在 org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) 在 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633) 在 com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719) 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685) 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) 在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) 在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) 在 com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) 在 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) 在 javax.xml.parsers.SAXParser.parse(SAXParser.java:375) 在 org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) 在 org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) 在 org.apache.axis.Message.getSOAPEnvelope(Message.java:435) 在 org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) 在 org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) 在 org.apache.axis.client.Call.invokeEngine(Call.java:2784) 在 org.apache.axis.client.Call.invoke(Call.java:2767) 在 org.apache.axis.client.Call.invoke(Call.java:2443) 在 org.apache.axis.client.Call.invoke(Call.java:2366) 在 org.apache.axis.client.Call.invoke(Call.java:1812) 在 com.vtech.external.implementation.qantas.QantasServices.DistributorPortSoapBindingStub.getAccommodationAvailability(DistributorPortSoapBindingStub.java:1675) 在 com.vtech.external.implementation.tripAdvisor.bizaction.Test.main(Test.java:68) {http://xml.apache.org/axis/}主机名:vibpj160

【问题讨论】:

  • 该服务是否真的可用,如果是,它是否接受您的请求?服务前面是否有一些网关会阻止您的呼叫到达网络服务?
  • 是的,网络服务可用...
  • 如果我尝试通过 xml 请求调用相同的服务它会给我想要的响应。
  • 我不确定您是否使用任何工具发送消息,但请检查是否需要增加某些“超时”属性。
  • 我已经将超时属性增加到 2 分钟。

标签: java web-services axis


【解决方案1】:

作为

at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)

表明您的请求没有在您的网络服务提供商端进行反序列化。

只需检查请求协议类型即可。

【讨论】:

    【解决方案2】:

    您的网络服务调用发生超时,您必须使用以下代码增加超时:

    ((Stub) [your-port or service]).setTimeout(timeout);
    

    此代码设置 Web 服务调用超时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-05
      • 2011-08-30
      • 2014-03-31
      • 2013-08-24
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多