由于我在这里描述的problem,我对这个问题很感兴趣。 Glassfish如何寻找所需的类?假设应用程序的pom.xml中有两个库(在依赖项中),一个用声明提供声明,另一个声明用标准范围声明。
因此,我有两个库 - A.jar在Glassfish lib文件夹中,B.jar在我部署的war模块的WEB-INF / lib中。
这里解决依赖关系的顺序是什么?我认为:
这是对的吗?当A.jar中的类重新启用B.jar中的一个类时,这种配置是否合法,反之亦然?
更具体地说,我有Glassfish 2.1。
答案 0 :(得分:0)
根据类加载器documentation for GF2我会说反之亦然。
请注意,类加载器层次结构不是Java继承层次结构,而是委派层次结构。在委托设计中,类加载器在尝试加载类本身之前将类加载委托给其父级。如果父类加载器无法加载类,则类加载器会尝试加载类本身。实际上,类加载器负责仅加载父级不可用的类。由层次结构中较高的类加载器加载的类不能引用层次结构中较低的可用类。
但是,您可以使用
通过glassfish特定描述符影响行为<class-loader delegate="true/false"/>
您可以在第一个链接
后找到更多相关信息