JBoss 6 распаковывает банки из WEB-INF / lib of war - PullRequest
1 голос
/ 05 января 2011

когда я запускаю JBoss 6, я вижу, что он распаковывает все файлы jar из WEB-INF / lib в папку tmp / vfs / automountXXX. Например. jackrabbit-server.war содержит библиотеку asm-3.1.jar, затем в папке tmp я вижу следующие папки с файлами:

asm-3.1.jar-83dc35ead0d41d41/asm-3.1.jar
asm-3.1.jar-2a48f1c13ec7f25d/contents/"unpacked asm-3.1.jar"

он не принимает файлы из my.ear / lib только WEB-INF / lib ... Почему это так? И есть ли способ предотвратить это? Это просто замедляет запуск (и остановку) сервера приложений, что не очень удобно при разработке ... кстати. переупаковав структуру war to ear, я получил то же самое работающее приложение и сэкономил 1 минуту, пока запускается сервер приложений ... 1 минута достаточно хороша ... надеюсь, есть более простой способ без перепаковки в режиме разработки.

Если это как-то связано со спецификацией JavaEE 6 и ejb-jars, которые теперь можно найти в WEB-INF / lib, поэтому у меня нет таких библиотек в моих файлах war ...

ОБНОВЛЕНИЕ : на самом деле, когда я перепаковываю jackrabbit-server.war в jackrabbit-server.ear, который содержит jackrabbit-server.war и перемещает все его библиотеки в jackrabbit-server.ear / lib, я все еще вижу две папки в tmp:

asm-3.1.jar-215a36131ebb088e/asm-3.1.jar
asm-3.1.jar-14695f157664f00/contents/

но в этом случае последняя папка пуста. Таким образом, он по-прежнему создает две папки, но не распаковывает мою библиотеку. Также я использую развернутое развертывание , поэтому вопрос касается только jar-файлов, а не распаковки ear / war.

Ответы [ 2 ]

1 голос
/ 05 января 2011

Он также будет распаковывать EAR, но не в том же месте. Вам придется охотиться, чтобы найти, где они распакованы, но они есть.

Это делает по причинам производительности. Если этого не произойдет, тогда загрузка классов будет очень медленной, так как она должна будет проходить через вложенные ZIP-файлы в поисках того, что ей нужно.

Так что вы можете почувствовать, что распаковка замедляет вас, но на самом деле ускоряет процесс.

0 голосов
/ 08 января 2011

Согласно обсуждению на форуме JBoss AS, это может быть ошибкой. И нет никакого обходного пути, чтобы исправить / избежать / настроить это сейчас.

Единственная идея, которую я получил, состояла в том, чтобы перепаковать мои приложения: внутри EAR я переместил библиотеки из WEB-INF \ lib of WAR в EAR \ lib (в WAR остались только стойки, в противном случае это не будет работать), и еще одна WAR Приложение, которое я сделал как EAR, и все его библиотеки я могу переместить в EAR \ lib. В режиме разработки я могу легко использовать эту структуру, и это экономит мне 2+ минуты на загрузку сервера приложений, и это очень много ... Теперь JBoss требуется 1:50 минут для запуска, по сравнению с 4 минутами раньше ...

...