【问题标题】:Question mark (?) symbol printed in java Stack Tracejava Stack Trace中打印的问号(?)符号
【发布时间】:2020-04-27 08:51:40
【问题描述】:

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

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

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

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

没有?象征 2.4.0.redhat-630262

【问题讨论】:

    标签: java soap jbossfuse


    【解决方案1】:

    如果您使用的是 Fuse 7.5,那么渲染堆栈跟踪的是 pax-logging 1.11 使用的 org.apache.logging.log4j.core.impl.ExtendedStackTraceElement 类和 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 库。

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

    【讨论】:

    • 感谢您的澄清。是的,我正在将服务从 Fuse 6.3.0 升级到 Fuse 7.5.0。我担心的是这个?符号被用作某些无法打印的信息的占位符?如果是这样的话,有什么办法可以避免呢?
    • @AnkitGupta 看起来它正在尝试打印“位置:类路径元素或 jar”,并且由于 Java 类两者都不是 - 它们是 JDK 的一部分 - 它显示? 因为它不知道课程来自哪里。如果这是正确的,他们的实施可能会得到改进
    • 可以通过属性文件等进行任何配置级别更改来解决此问题吗?
    • 不。实际上没有什么可解决的...检查logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayoutex|exception|throwable 配置属性的描述以配置堆栈跟踪的格式。
    • @GrzegorzGrzybek 谢谢。我浏览了您提供的链接,这很有帮助。你知道在 karaf 中设置 throwable 的默认格式吗?
    猜你喜欢
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多