Jakarta ee Glassfish 3类加载器序列

Jakarta ee Glassfish 3类加载器序列,jakarta-ee,glassfish,classpath,classloader,Jakarta Ee,Glassfish,Classpath,Classloader,这个基本的话题仍然困扰着我。假设我在部署的战争中有一个库。我在GF/lib和GF/domain/./lib中有lib 图书馆的阅读或搜索顺序是什么? 如果我有冲突的JAR(例如,在上述路径中具有不同版本的SLF4j),会发生什么情况 我们使用activemq 5.5.0,它依赖于一个较旧的SLF4j库(带有log4j),我们的web应用程序使用当前的SLF4j版本(带有logback),并且不断地遇到incomp。错误 有什么想法或解释吗? 谢谢 Sven应用程序ear/war/jar文件中的库

这个基本的话题仍然困扰着我。假设我在部署的战争中有一个库。我在GF/lib和GF/domain/./lib中有lib
图书馆的阅读或搜索顺序是什么?
如果我有冲突的JAR(例如,在上述路径中具有不同版本的SLF4j),会发生什么情况

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

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

Sven

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

这有一个包含不同库位置加载顺序的表:

本文介绍了一种控制单个库文件夹中的顺序的方法:


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

activemq-all-5.5.0.jar不包含jar文件作为库,而是包含类文件。不幸的是,这不是一个选项。我通过使用activemq包中的单个文件而不是“全部”文件来解决这个问题