我在jboss上部署了2个应用程序作为app1.war和app2.war。这两个应用程序使用一个常见的java包,比如myPackage。早些时候我的战争看起来像这样
=============================================== =========================
app [12] .war /
----- web.xml
----- app特定的类(.class文件之类)
----- appClass1.class
----- appClass2.class等。
----- WEB-INF /
----- myPackage /(这只是战争下的文件夹,不是jar包)
----------属于普通包的类如
---------- common_class1.class
---------- common_class2.class
----------
----------。
=============================================== ========================
但是这会产生问题,因为两个公共类都会在两个war文件中具有完全相同的名称等。所以我决定将公共包编译为jar文件并将其放在WEB-INF / lib中的每个war文件中,现在我的war文件看起来像
=============================================== =============================
应用程序[12]的.war /
----- web.xml中
----- app特定的类(.class文件之类)
----- appClass1.class
----- appClass2.class等。
----- WEB-INF /
---------- LIB /
---------- myPackage.jar(现在这是一个jar包)
---------- mypackage中/
---------------属于普通包的类如
--------------- common_class1.class
--------------- common_class2.class
---------------。
---------------。
=============================================== =============================
但现在我的app特定类需要使用myPackage.jar访问类文件抛出java.lang.ClassNotFoundException异常。
我用谷歌搜索了3-4个令人沮丧的时间,但没有解决这个特殊问题。我可能做了一些非常错误的事情。任何人都可以帮助我吗?
PS:我正在JBOSS 4.2.3中部署我的战争
非常感谢。 〜马诺吉
答案 0 :(得分:0)
JBoss在类加载方面有自己的版本依赖特性。这些链接可能对您有所帮助:
但是如果你的两个WAR需要相同版本的公共包,你可以将该包的JAR放入相关服务器配置的lib文件夹(例如server / default / lib),而不是将它放在WAR文件中。 / p>