Jar in War - исключение NoClassDefFound - PullRequest
0 голосов
/ 10 августа 2009

Я развернул 2 приложения как app1.war и app2.war на jboss. Эти два приложения используют общий пакет Java, скажем, myPackage. Раньше мои войны выглядели так

=============================================== =========================

app [12] .war /
----- web.xml
----- классы, специфичные для приложения (например, файлы .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
----- специфичные для приложения классы (например, файлы .class)
----- appClass1.class
----- appClass2.class и т. д.
----- WEB-INF /
---------- Библиотека /
---------- myPackage.jar (теперь это пакет jar)
---------- MyPackage /
--------------- классы, принадлежащие к общему пакету, такие как
--------------- common_class1.class
--------------- common_class2.class
---------------.
---------------.

=============================================== =============================

Но теперь мои классы, специфичные для моего приложения, должны обращаться к файлам классов с помощью myPackage.jar и генерируют исключение java.lang.ClassNotFoundException.

Я погуглил 3-4 часа, но ничего не решило эту конкретную проблему. Я, вероятно, делаю что-то невероятно неправильно. Кто-нибудь достаточно умен, пожалуйста, помогите мне?

PS: я разворачиваю свои войны в JBOSS 4.2.3

Спасибо за тонну. ~ Манодж

1 Ответ

0 голосов
/ 09 сентября 2009

JBoss имеет свои особенности, зависящие от версии, когда дело доходит до загрузки классов. Эти ссылки могут помочь вам:

Но если обе ваши WAR требуют одной и той же версии общего пакета, вы можете поместить JAR для этого пакета в папку lib соответствующей конфигурации сервера (например, server / default / lib) вместо того, чтобы поместить ее в файлы WAR.

...