CXF Web客户端-Java.net.SocketTimeoutException-未记录入站消息



我的日志记录功能在cxf客户端3.3.4版本中运行良好,但当soap调用出现超时错误(java.net.SocketTimeoutException(时,不会记录入站消息。你能告诉我如何/如何配置才能记录入站消息吗?

JaxWsProxyFactoryBean proxy = new JaxWSProxyFactoryBean()
---
--
LoggingInInterceptor reqInter = new LoggingInInterceptor();
LoggingOutInterceptor resInter = new LoggingOutInterceptor();
proxy.getInInterceptors().add(reqInter);
proxy.getOutInterceptors().add(respInter);
proxy.getOutInterceptors().add(new NillableSAAJInterceptor());
proxy.getOutInterceptors().add(new SAAJOutInterceptor());

log4j.xml

<AsyncLogger name ="org.apache.cxf" level="info">
</AsyncLogger>
<AsyncLogger name="org.apache.cxf.interceptor.LogginInIntercetpor" level="info">
</AsyncLogger>
<AsyncLogger name="org.apache.cxf.interceptor.LoggingOuInteceptor" level="info">
</AsyncLogger>

JAX-WS客户端使用HTTPS将SOAP消息发送到服务器,然后该消息将发送到应用程序中的消息记录拦截器。您必须告诉CXF,它需要配置一个额外的Nginx/Apache HTTP代理服务器,该服务器用于为从HTTP端点到SOAP端点的消息提供服务
请在应用程序中尝试以下配置。如果这可行,那么我们可以讨论其他方法

<jaxws:client configurator-ref="cxfClientConfig">
<jaxws:inInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
</jaxws:inInterceptors>
<jaxws:outInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
</jaxws:outInterceptors>
<jaxws:inFaultInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
</jaxws:inFaultInterceptors>
<jaxws:outFaultInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
</jaxws:outFaultInterceptors>
</jaxws:client>

最新更新