【发布时间】:2022-01-07 22:46:52
【问题描述】:
由于历史原因,我们使用 logback 覆盖 wildfly 中的日志记录子系统。
直到wildfly 18,这是根据一些旧的RedHat howto 完成的,它告诉在$WILDFLY_HOME/modules 中定义一个自定义org.slf4j 模块。这会覆盖$WILDFLY_HOME/modules/system/layers/base 中已经存在的模块。
我们的自定义模块依赖于自定义 logback 模块,而不是 Wildfly 本身提供的 org.slf4j.impl 实现。
我们的 Web 应用程序(在其 jboss-deployment-structure.xml 中)依赖于模块 org.slf4j。
直到 wildfly 18,这导致应用程序提供了 slf4j 接口的 logback 实现,但是在 Wildfly 23 中,我们从 org.slf4j.impl 获得实现。
问题是,wildfly 中的模块覆盖机制以何种方式发生了变化,以便我们观察到不同的行为,我们如何才能纠正这种情况?
【问题讨论】:
-
你有链接到howto吗?我假设您只想为正确的部署而不是所有其他模块执行此操作?
-
如果您修改
jboss-deployment-structure.xml文件以排除JBoss 提供的org.slf4j.impl 模块怎么办?查看 ${JBOSS_HOME}/modules/system/layers/base/org/slf4j/impl/main/module.xml 以获取确切的模块名称
标签: java wildfly classloader