gpt4 book ai didi

java - 将 SOAP 请求/响应写入日志文件

转载 作者:太空宇宙 更新时间:2023-11-04 06:35:21 24 4
gpt4 key购买 nike

我有一个 Web 服务 Client 类,它使用 wsdl url 与目标服务器建立连接。此类使用 JaxWsProxyFactoryBean 和 WSS4JOutInterceptor 建立安全连接。我希望看到我的代码生成的 SOAP 请求和服务器生成的响应。

当我从命令行运行我的 jar 时,我尝试包含以下选项

-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true
-Dcom.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump=true
-Dcom.sun.xml.ws.transport.http.HttpAdapter.dump=true
-Dcom.sun.xml.internal.ws.transport.http.HttpAdapter.dump=true

我使用 log4j 进行日志记录,所有消息都写入自定义文件。如何使用命令行选项将 SOAP 请求/响应转储到同一文件?

我是否必须对 Client 类进行任何代码更改才能实现此目的?

感谢您的帮助。

最佳答案

我必须将以下行添加到创建 SOAP 请求的类中:

LoggingInInterceptor loggingInInterceptor = new LoggingInInterceptor();
loggingInInterceptor.setPrettyLogging(true);
LoggingOutInterceptor loggingOutInterceptor = new LoggingOutInterceptor();
loggingOutInterceptor.setPrettyLogging(true);
factory.getInInterceptors().add(loggingInInterceptor);
factory.getOutInterceptors().add(loggingOutInterceptor);

我还必须将我的 cxf 客户端更新到 Apache 的最新版本,即 2.7.12。这会将 SOAP header 打印到控制台。

关于java - 将 SOAP 请求/响应写入日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25489504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com