战争中的 Jar - NoClassDefFound 异常

问题描述 投票:0回答:1

我在jboss上部署了2个应用程序作为app1.war和app2.war。这两个应用程序使用通用的 java 包,例如 myPackage。早些时候我的战争看起来像这样

应用程序[12].war/
-----web.xml
-----应用程序特定的类(.class 文件等)
-----appClass1.class
-----appClass2.class 等..
-----WEB-INF/
-----myPackage/(这只是war下的文件夹,不是jar包)
----------属于公共包的类,如
----------common_class1.class
----------common_class2.class
----------.
----------.

但这会产生问题,因为两组公共类在两个 war 文件中都具有完全相同的名称等。所以我决定将公共包编译为jar文件并将其放入每个war文件中的WEB-INF/lib中,现在我的war文件看起来像这样

应用程序[12].war/
-----web.xml
-----应用程序特定的类(.class 文件等)
-----appClass1.class
-----appClass2.class 等..
-----WEB-INF/
----------lib/
----------myPackage.jar(这现在是一个jar包)
----------我的包/
---------------属于公共包的类,如
---------------common_class1.class
---------------common_class2.class
---------------。
---------------。

但是现在我的应用程序特定类需要使用 myPackage.jar 访问类文件,会抛出 java.lang.ClassNotFoundException 异常。

我用谷歌搜索,但没有解决这个特殊问题。我可能正在做一些极其错误的事情。接下来我可以尝试什么?

PS:我正在 JBOSS 4.2.3 中部署我的战争

jboss jar war classloader
1个回答
0
投票

JBoss 在类加载方面有其自己的版本相关特性。这些链接可能对您有帮助:

但是,如果您的两个 WAR 都需要相同版本的通用包,您可以将该包的 JAR 放入相关服务器配置的 lib 文件夹(例如 server/default/lib),而不是将其放在 WAR 文件中。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.