Ушной подход
Вы можете просто поместить его в каталог Tomcat webapps/, и он будет выбран.
Пример уха (действительный):
myapplication.ear
lib/
lib/libraryOne.jar
lib/libraryTwo.jar
redEjbs.jar
blueEjbs.jar
Распространенная ошибка (неверно):
myapplication.ear
libraryOne.jar (err. not a javaee module)
libraryTwo.jar (err. not a javaee module)
redEjbs.jar
blueEjbs.jar
В корне разрешены только модули Java EE. Это JAR-файлы EJB, файлы .war, RAR-файлы Connector и JAR-файлы Application Client. До Java EE 5 библиотеки должны были быть явно перечислены в файле application.xml. В Java EE 5 и более поздних версиях они могут быть добавлены в каталог lib/ и восприниматься как обычные jar-файлы, а не как модуль Java EE.
Свернутый метод EAR
В OpenEJB/Tomcat вы можете поместить все свои библиотеки в военный файл и избавиться от концепции уха. Теперь это часть Java EE 6.
mywebapp.war
WEB-INF/lib/libraryOne.jar
WEB-INF/lib/libraryTwo.jar
WEB-INF/lib/redEjbs.jar
WEB-INF/lib/blueEjbs.jar
Распространенная ошибка, включая спецификации:
mywebapp.war
WEB-INF/lib/javax.ejb.jar (err. clashes with the related system library)
WEB-INF/lib/libraryOne.jar
WEB-INF/lib/libraryTwo.jar
WEB-INF/lib/redEjbs.jar
WEB-INF/lib/blueEjbs.jar
Не похоже, что это проблема, но добавление для полноты.
Распространенная ошибка, сломанные зависимости:
tomcat/lib/libraryTwo.jar
mywebapp.war
WEB-INF/lib/libraryOne.jar
WEB-INF/lib/redEjbs.jar
WEB-INF/lib/blueEjbs.jar
Вышеприведенное не является недействительным с точки зрения спецификации и не может быть обнаружено сервером, но все же может привести к неправильной загрузке приложений. Если для libraryTwo.jar нужны классы в libraryOne.jar, то это приложение никогда не будет работать, поскольку загрузчик классов Tomcat «lib» не может видеть классы из загрузчика классов «webapp», поэтому классы из libraryTwo.jar никогда не будут успешно загружены. К сожалению, виртуальная машина почти никогда не скажет фактический отсутствующий класс, а вместо этого сообщит о первом классе в цепочке событий, которые привели к необходимости отсутствующего класса. Это почти всегда класс компонента или сервлета.
person
David Blevins
schedule
14.10.2010