2011-11-17 29 views
1

我们使用的是JBossWS - Native (version 3.1.2)(标准JBoss EAP 5.1安装),我们正在互相以下例外...,任何人都有线索?Intermittent javax.xml.ws.soap.SOAPFaultException:Unqualified {http://schemas.xmlsoap.org/soap/envelope/}Client错误

如果我的WebService了几个电话也工作正常测试,但是一旦部署到生产环境,我们开始看到这个错误..最能正常工作的时间..但有时我们看到这个错误..

我估计大约有10%的Web服务调用出现这个错误。

使用wsconsume

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) 

回答

2

这里是我做过什么来解决这个问题产生的Web服务客户端,

FIRST STEP

我从1.6.0_23版本升级我的Solaris Java版本到版本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 

..和设置从2048http://org.jboss.ws/http#chunksize0

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