【问题标题】:Glassfish 3 Classloader SequenceGlassfish 3 类加载器序列
【发布时间】:2011-07-25 10:03:24
【问题描述】:

这个基本话题仍然让我感到困惑。假设我在部署的战争中有一个图书馆。我在 GF/lib 和 GF/domain/../lib 中有库
文库按什么顺序读取或搜索?
如果我有冲突的 jars(例如 SLF4j 在上述路径中有不同的版本)会发生什么?

我们使用 activemq 5.5.0,它依赖于较旧的 SLF4j 库(带有 log4j),我们的 Web 应用程序使用当前的 SLF4j 版本(带有 logback)并不断遇到 incomp。错误。

有什么想法或解释吗?
谢谢
斯文

【问题讨论】:

    标签: jakarta-ee glassfish classpath classloader


    【解决方案1】:

    应用程序 ear/war/jar 文件中的库是最后加载的,但是在同一个文件夹中我还没有找到任何详细说明顺序的内容。

    这有一个不同库位置加载顺序的表:http://download.oracle.com/docs/cd/E19226-01/820-7695/6niugesfp/index.html#indexterm-28

    这里讨论了一种在单个库文件夹中控制顺序的方法:http://www.java.net/node/704037

    如果您自己部署 ActiveMQ,也许您可​​以解压 jar 并删除旧的 SLF4J 库?这样你也可以将 SLF4J 绑定到两个部分的 logback。

    【讨论】:

    • activemq-all-5.5.0.jar 不包含 jar 文件作为库,但包含类文件。不幸的是,这是没有选择的。
    • 我通过使用 activemq 包中的单个文件而不是使用“所有”文件解决了这种情况
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    相关资源
    最近更新 更多