【问题标题】:Intermittent javax.xml.ws.soap.SOAPFaultException: Unqualified {http://schemas.xmlsoap.org/soap/envelope/}Client fault间歇性 javax.xml.ws.soap.SOAPFaultException: Unqualified {http://schemas.xmlsoap.org/soap/envelope/}客户端故障
【发布时间】:2011-11-17 03:58:15
【问题描述】:

我们正在使用JBossWS - Native (version 3.1.2)(标准 JBoss EAP 5.1 安装)并且我们偶尔会收到以下异常...,有人知道吗?

如果我通过几次调用 web 服务进行测试,它工作正常,但是一旦部署到生产环境中,我们就会开始看到这个错误。大多数时候它工作正常。但有时我们会看到这个错误。

我估计大约 10% 的 Web 服务调用会出现此错误。

使用wsconsume生成Web服务客户端

2011-11-17 09:35:05,652 ERROR [org.jboss.ws.core.CommonClient] (ajp-10.1.75.243-8209-5) Exception caught while (preparing for) performing the invocation:
javax.xml.ws.soap.SOAPFaultException: Unqualified {http://schemas.xmlsoap.org/soap/envelope/}Client fault
    at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.getSOAPFaultException(SOAPFaultHelperJAXWS.java:85)
    at org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS.throwFaultException(SOAP11BindingJAXWS.java:107)
    at org.jboss.ws.core.CommonSOAPBinding.unbindResponseMessage(CommonSOAPBinding.java:558)
    at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:396)
    at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:231)
    at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:171)
    at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:157)
    at $Proxy234.searchCustomerIdEquip(Unknown Source)

【问题讨论】:

    标签: java jboss jbossws solaris-10


    【解决方案1】:

    这是我为解决问题所做的,

    第一步

    我将我的 Solaris Java 版本从版本 1.6.0_23 升级到版本 1.6.0_27。升级后异常从javax.xml.ws.soap.SOAPFaultException

    更改
    ERROR [org.jboss.ws.core.CommonClient] (ajp-10.1.75.243-8109-4) Exception caught while (preparing for) performing the invocation:
    javax.xml.ws.soap.SOAPFaultException: Unqualified {http://schemas.xmlsoap.org/soap/envelope/}Client fault
        at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.getSOAPFaultException(SOAPFaultHelperJAXWS.java:85)
        at org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS.throwFaultException(SOAP11BindingJAXWS.java:107)
        at org.jboss.ws.core.CommonSOAPBinding.unbindResponseMessage(CommonSOAPBinding.java:558)
        at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:396)
        at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:231)
        at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:171)
        at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:157)
    

    java.io.IOException...

    [org.jboss.ws.core.CommonClient] (ajp-10.1.75.243-8109-1) Exception caught while (preparing for) performing the invocation:
    java.io.IOException: Could not transmit message
        at org.jboss.ws.core.client.HTTPRemotingConnection.invoke(HTTPRemotingConnection.java:253)
        at org.jboss.ws.core.client.SOAPProtocolConnectionHTTP.invoke(SOAPProtocolConnectionHTTP.java:71)
        at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:360)
        at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:231)
        at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:171)
        at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:157)
    

    第二步

    得到 IOException 后,我意识到我们的负载均衡器可能不允许分块编码。所以我更改了 Jboss 配置,使其不使用分块编码,编辑下面的文件..

    jboss-eap-5.1.0.GA/jboss-as/server/<instance>/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml
    

    .. 并将 http://org.jboss.ws/http#chunksize2048 设置为 0

    做到了!.. 我们不再有 SOAPFaultException。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多