首页 > 解决方案 > java Stack Trace中打印的问号(?)符号

问题描述

我在 karaf docker 容器上运行 Fuse ESB SOAP 服务。

JAAS Basic 身份验证在此服务中实现。对于错误的凭据,我在保险丝日志中收到了预期的身份验证错误,但我也收到了?java 堆栈跟踪日志中的符号。下面是带有 ? 的日志快照 符号突出显示。

我也没有得到任何这样的?符号,当相同的代码在旧版本的 karaf 中运行时。(附图片)

和 ?象征。 4.2.6.fuse-750016-redhat-00001

没有 ?符号 2.4.0.redhat-630262

标签: javasoapjbossfuse

解决方案


如果您使用的是 Fuse 7.5,那么渲染堆栈跟踪的是org.apache.logging.log4j.core.impl.ExtendedStackTraceElementpax-logging 1.11 使用的类和 Fuse 7 使用的 pax-logging-log4j2 类。

另一方面,Fuse 6.x 使用 pax-logging 1.9.1 和 pax-logging-service 捆绑包,它基于 Log4j1 并且堆栈跟踪元素的呈现取决于...... Karaf 认可的$FUSE_HOME/lib/endorsed/org.apache.karaf.exception-2.4.0.redhat-630262.jar库。

如此简单 - 堆栈跟踪使用不同的机制进行格式化。


推荐阅读