TomEE Plus, похоже, не находит "ejb-jar.xml" в войне приложений
Моя главная цель - перенести приложение EJB 2.x, написанное для WebSphere, на веб-приложение, развертываемое для сервера Tomcat. Но я хочу к этому как к миграции один на один.
Поэтому я настроил TomEE (apache-tomee-plus-1.0.0) и сохранил конфигурацию подкаталога /apps в качестве каталога развертывания.
Когда я помещаю файл *.war в каталог /apps, OpenEJB успешно распаковывает архив и загружает его. Но я не вижу загрузки EJB в логах. Я думаю, что OpenEJB игнорирует "ejb-jar.xml" в "/apps/BdbWeb/META-INF".
Log-Снип:
INFO main OpenEJB.startup.config - Extracting jar: C:\Entwicklung\apache-tomee-plus-1.0.0\apps\BdbWeb.war
INFO main OpenEJB.startup.config - Extracted path: C:\Entwicklung\apache-tomee-plus-1.0.0\apps\BdbWeb
DEBUG main OpenEJB.options - Using default 'openejb.tempclassloader.skip=none' Possible values are: none, annotations, enums, all or NONE or ALL
DEBUG main OpenEJB.options - Using default 'openejb.webservices.enabled=true'
DEBUG main OpenEJB.options - Using default 'tomee.jaxrs.deploy.undeclared=false'
DEBUG main OpenEJB.options - Using default 'openejb.webservices.enabled=true'
DEBUG main OpenEJB.options - Using default 'openejb.check.classloader=false'
INFO main OpenEJB.options - Using 'openejb.descriptors.output=false'
INFO main OpenEJB.options - Using 'openejb.descriptors.output=false'
INFO main OpenEJB.options - Using 'openejb.validation.output.level=VERBOSE'
INFO main OpenEJB.startup.config - Enterprise application "C:\Entwicklung\apache-tomee-plus-1.0.0\apps\BdbWeb.war" loaded.
Когда я добавляю хотя бы одну аннотацию (например, @Remote или @Stateful) в класс Java, я вижу соответствующие записи в журнале. Итак, OpenEJB нашел аннотации.
Но есть много классов и большой файл ejb-jar.xml! Я хочу избежать ручного добавления правильной аннотации к каждому классу...! Надеюсь, вы поможете мне найти ошибку.
Может быть, это вопрос структуры? У меня есть следующая структура в файле войны:
- BdbWeb.war
- страницы
- *.jsp
- изображений
- *.jpg
- META-INF
- EJB-jar.xml
- MANIFEST.MF
- openejb-jar.xml (создан вручную; надеялся, что это поможет - но это не так)
- таблицы стилей
- *.css
- WEB-INF
- классы
- де
- справочники с классами
- log4j.xml
- hibernate.cfg.xml
- де
- Lib
- *.jar
- web.xml
- классы
- index.jsp
- страницы
Я уже установил openejb.servicemanager.enabled
свойство в файле 'system.properties' для true
но это сгенерировало только XML-файл без записей об объектах или объектах.
Что я должен сделать, чтобы получить данный ejb-jar.xml, используемый OpenEJB?
Кстати: действительно ли самодельный openejb-jar.xml необходим...?
1 ответ
Требуется только небольшая настройка: для Java EE 7 требуется расположение для функции "EJBs in .WARs". WEB-INF/ejb-jar.xml
Для нас было бы неплохо проверить это и выдать предупреждение. Я создал билет на это здесь
Примечания стороны:
- Нет,
openejb-jar.xml
не обязательно - настройка
openejb.servicemanager.enabled
тоже не нужно
Вы видели что-то в документации, которая указала openejb.servicemanager.enabled
требовался в TomEE? Если так, указатель на документ был бы хорош - я позабочусь, чтобы он был удален.