我们有一个使用java在CXF 3.0.1上构建的soap服务,它部署在Wildlfy 9.0.2中。代码使用自己的CXF jar并且不使用Wildfly提供的CXF模块。
有一个客户端使用此服务。客户端代码还使用CXF 3.0.1和SAAJ,并部署在Weblogic 12实例中。
问题是,当客户端调用此服务时,Wildfly会收到请求,流程结束,但不会生成响应(在CXF日志中)或发送回客户端。
当我检查TCP数据包时,我意识到客户端调用具有以下标题:
编码:UTF-8 Http-Method:POST Content-Type:text / xml; charset = UTF-8标题:{Accept = [ / ],connection = [Keep-Alive], 内容类型= [文本/ XML;字符集= UTF-8], 主机= [WS-env.applications.services.com-tech.intra] SOAPAction = [" http://path到肥皂行动"], transfer-encoding = [ chunked ],User-Agent = [Apache CXF 3.0.1]}
客户端调用最终失败并出现以下错误:
javax.xml.ws.WebServiceException:无法发送消息。 在org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:148) 在com.sun.proxy。$ Proxy139.processStrucutredEnvelopes(未知来源)... 引起:java.net.SocketTimeoutException:SocketTimeoutException 调用 http://endpointURL: 60000毫安后读取超时 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.apache.cxf.transport.http.HTTPConduit $ WrappedOutputStream.mapException(HTTPConduit.java:1359) at org.apache.cxf.transport.http.HTTPConduit $ WrappedOutputStream.close(HTTPConduit.java:1343) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:638) 在
服务的执行最多需要4-5秒
另一个令人惊讶的问题是,从SOAPUI调用此服务时,甚至来自客户端服务器的wget都会返回一个有效的SOAP响应。
我尝试按照https://docs.jboss.org/author/display/WFLY9/Apache+CXF+integration#ApacheCXFintegration-HTTPConduitconfiguration所述设置HTTPConduit配置,但这似乎没有帮助。
任何帮助都将不胜感激。