这与JBoss 5.1.0有关:
我习惯于将JAR直接放在我的EAR下面,然后让课程被选中。当ClassLoader执行诊断转储时,它会列出耳朵下的所有JAR,然后列出在所述JAR中找到的所有Java包。
我有这个档案jsqlparser-bin.jar
,尽管属于EAR,却被错误地列为JAR。但是,它的包被发现,但它们都带有JAR的名称!因此,它不会列出net.sf.jsqlparser.schema
这样的包,而是列出jsqlparser-bin.jar.net.sf.jsqlparser.schema
。
我还在转储中注意到其他存档前置包名称,例如jaxb-impl.jar.com.sun.xml.bind.api
。这让我相信,如果同一个软件包包含在多个JAR中,那么JBoss会进行一些创意重命名,因此需要预先添加。但是,如果我从EAR中完全删除jsqlparser-bin.jar
,则不会转储任何版本的软件包。所以现在我很无能为力。我还在EAR中扫描了jsqlparser
的其他档案,但是空了。 jsqlparser-bin.jar
本身就是犹太教,因为我能够用它进行编译(没有它就不能编译)。
那是什么给出的?如何使JAR中的类可见?为什么它在类加载器层次结构中没有自己的DelegatingHandler
?
答案 0 :(得分:0)
看起来我需要在<module>
中添加META-INF/application.xml
块才能正确解析。