Директива Даффимо о том, чтобы не ставить банки в одобрено , игнорируется на ваш страх и риск.
В некоторых дополнительных деталях:
Размещение библиотек в вашем WEB-INF / lib - это лучшая практика для переносимости и согласованности, поскольку она соответствует стандартному положению по созданию самодостаточных и распространяемых веб-архивов, но вам необходимо обратить пристальное внимание на класс .loading объявление, которое вы помещаете в jboss-web.xml .
Предположим, что простой сценарий без загрузка классов объявление и вымышленный example.jar :
- Если вы поместите example.jar в WEB-INF / lib и он не также существует в jboss // lib , тогда example.jar будет виден только этому конкретномуWAR.
- Если вы поместите example.jar в WEB-INF / lib и , это делает Так как он существует в jboss // lib , экземпляр в WEB-INF / lib будет по существу игнорироваться, и WAR будет использовать загрузчик унифицированного класса экземпляра сервера JBoss для загрузки пример классы из jboss // lib / example.jar .(То же самое применимо к любым другим WAR-файлам или EAR-файлам в том же экземпляре сервера, при условии, что class-loading переопределений не будет.)
class-loading объявление необходимо в тех случаях (например, когда), когда у вас есть две разные версии example.jar : - jboss // lib: example1.0.jar - WEB-INF / lib: example2.0.jar
В этом случае JBoss создаст уникальный и изолированный загрузчик классов для вашей WAR, который будет избегать jboss // lib / example1.0.jar в пользу WEB-INF / lib/example2.0.jar в контексте вашей WAR.
В итоге, если вы запускаете только одну WAR в экземпляре сервера jboss и / или у вас нет конфликтующих проблем JAR, откажитесь от class-loading объявление и поместите ваши JAR-файлы в jboss // lib .Это делает файл WAR более легким, в целом развертывание может быть проще, и вы не будете использовать дополнительную память с версиями дополнительного класса во время горячего развертывания.