java - 使用 log4j 的 WebSphere 7 JAX-WS 日志 Soap 消息

标签 java soap websphere jax-ws

我想知道如何利用 Log4J 在 WebSphere 7 中记录 SOAP 消息,我正在使用 JAX-WS,它使用 WebSphere 7 附带的 AXIS2 引擎。我能够在 WebSphere 中使用“跟踪”记录 SOAP 消息但我想知道是否有一种方法可以使用 Log4J 来记录 SOAP 消息并使用 File Appender。

如果有人能确切地告诉我如何配置它,我将不胜感激,我尝试了一些方法但没有用。

我确实将 log4j.properties 文件放在 WEB-INF/classes 中,但它不记录 SOAP 消息。

log4j.rootCategory=DEBUG, LOGFILE
log4j.logger.org.apache.axis2=DEBUG, LOGFILE
log4j.category.org.apache.axis2=DEBUG, LOGFILE
log4j.logger.org.apache.axis2.transport.http=DEBUG, LOGFILE
log4j.category.org.apache.axis2.transport.http=DEBUG, LOGFILE
log4j.logger.com.ibm.ws.websvcs=DEBUG, LOGFILE
log4j.category.com.ibm.ws.websvcs=DEBUG, LOGFILE

log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=C:/K1/logs/axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5p %c %x - %m%n

最佳答案

WebSphere Web 服务运行时在内部使用 WebSphere 跟踪日志记录。您可能无法通过简单地将 log4j 添加和配置到您的 Web 服务使用应用程序来将内置的 web service traces 定向到 log4j。

但是,您可以使用 JAX-WS 标准处理程序相当轻松地将请求和响应或错误记录到 log4j 记录器(但您必须编写一些代码)。

这里是 GlassFish tutorial on JAX-WS handlers 。请注意,演示处理程序将 SOAP 消息记录到 System.out;你会想要使用 log4j。

This StackOverflow post 包含 SOAP 消息记录处理程序的完整 java 类示例如何以编程方式注册处理程序,以便它在消息处理期间执行。它也使用 System.out;您需要将 log.debug(...) 替换为 out.println(...) 才能使用 log4j。然后,您可以像上面尝试的那样为这个记录器配置 log4j 文件附加程序。

作为侧边栏,如果您通过 @WebServiceRef 获取服务引用,您可以通过 @HandlerChain 引用的 XML 文件以声明方式定义处理程序。端到端的 IBM 教程是 here

关于java - 使用 log4j 的 WebSphere 7 JAX-WS 日志 Soap 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21989914/

相关文章:

java - 不受字符限制的字符串的正则表达式模式

java - 为什么我的程序没有返回正确的数字?

java - 没有通过 Ajax 的 Servlet 响应

java - 集群服务器上的单例

java - JVMCFRE003 错误的主要版本

java - 在 Java 中混淆 SSL 客户端 Hello v2 消息

java - 如何比较各行的总和?

java - SOAP:如何在不破坏现有客户端的情况下扩展类型?

.net - 如何从 ASP.NET 中的soap异常中提取内部异常?

soap - Dynamics CRM 2011 SOAP 服务/web