Подход к уху
Вы можете просто вставить его в каталог веб-приложений / каталогов Tomcat, и он будет поднят.
Пример уха (действительный):
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.Это файлы EJB, файлы .war, файлы Connector .rar и файлы приложения-клиента.До Java EE 5 библиотеки должны были быть явно перечислены в файле application.xml.Java EE 5 и вперед, их можно добавить в каталог lib / и понимать, что они являются просто обычными jar-файлами, а не модулем Java EE.
Свернутый подход EAR
В OpenEJB / Tomcat вы можете поместить все свои библиотеки в файл war и избавиться от концепции ушей.Теперь это часть 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 никогда не будут успешно загружены.К сожалению, виртуальная машина почти никогда не скажет фактический пропавший класс и вместо этого сообщит о первом классе в цепочке событий, которые приводят к необходимости пропущенного класса.Это почти всегда класс бобов или сервлетов.