gpt4 book ai didi

java - 如何在 tomcat 中运行的 spring boot 应用程序中显示 soap 调用日志

转载 作者:行者123 更新时间:2023-11-28 23:15:52 30 4
gpt4 key购买 nike

我有一个 spring boot 应用程序,

  • 打包为war文件
  • 部署在 tomcat 9.x 中
  • 网络应用正在使用 SOAP 调用第三方网络服务。

我的问题是如何在 Tomcat 容器中专门显示 SOAP 日志,因为我可以在应用程序的主要方法中使用以下代码在 Spring boot 中显示日志

 System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump", "true");
System.setProperty("com.sun.xml.ws.transport.http.HttpAdapter.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dumpTreshold", "999999");

但这在 tomcat 服务器中不起作用。我找到了以下帖子来构建 Soap 处理程序来记录请求:

https://stackoverflow.com/a/27468517/716865

发生的事情是第三方响应无效的 namespace 错误

最佳答案

经过长时间的调查,我找到了以下简单的解决方案:

  1. 编辑您的 catalina.sh/catalina.bat 文件,该文件可以在您的 tomcat 安装中找到
  2. 添加以下行或附加到 CATALINA_OPTS:

    CATALINA_OPTS="-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true -Dcom.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump=真-Dcom.sun.xml.ws.transport.http.HttpAdapter.dump=真-Dcom.sun.xml.internal.ws.transport.http.HttpAdapter.dump=真-Dcom.sun.xml.internal.ws。 transport.http.HttpAdapter.dump=true -Dcom.sun.xml.internal.ws.transport.http.HttpAdapter.dumpTreshold=999999"

  3. 重启你的 tomcat 服务器

  4. 从网络应用程序调用网络服务,您会发现所有 soap 请求都已完整记录

Be aware, that this could lead to security concerns if the soap requests/response has sensitive data.

我相信可能有比我的更好的解决方案,但这对我来说非常有效,无需添加任何额外的代码。

关于java - 如何在 tomcat 中运行的 spring boot 应用程序中显示 soap 调用日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49661473/

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