У меня есть некоторые проблемы, связанные с инъекцией EJB, и я нигде не смог найти решение.
Моя ситуация следующая: у меня есть файл EAR, который включает WAR и несколько JAR-файлов, все они перечислены вфайл application.xml.Все отлично работает для этой части.Проблемы возникают, когда я пытаюсь добавить то, что мы можем назвать «системой плагинов».У меня есть JAR с некоторыми страницами .xhtml, бобами и EJB-компонентами.Этот JAR-файл, если необходимо, вставляется в EAR в определенном каталоге (назовем его «плагинами») и обнаруживается в приложении при запуске.
Когда JAR-файл обнаруживается, его путь добавляется в загрузчик класса WAR, поэтомувсе страницы и бэк-бин обнаруживаются без проблем.Что не работает, так это внедрение EJB (я пытался использовать нотацию @EJB, @Inject, поиск ...).Я не могу внедрить ни один из EJB-компонентов, которые находятся внутри плагина JAR.
Я предполагаю, что сервер приложений рассматривает JAR как простой библиотечный модуль и не ищет в нем никакого EJB-компонента, поэтому они находятся внутриJAR, но нельзя использовать из приложения.
Мой вопрос: есть ли способ заставить это работать?Я попытался добавить JAR в файл EAR MANIFEST.MF, но ничего не изменилось ...
сервер приложений, который я использую, - glassfish 3.0.О application.xml: в нем нет ссылок на файлы JAR, которые являются частью того, что я назвал «системой плагинов».Это потому, что я обнаруживаю их при развертывании (или перезапуске) приложения на сервере приложений, поэтому они могут находиться или не находиться внутри системы, и я действительно не знаю этого до запуска системы.Каждый JAR плагина представляет собой «набор» страниц и функциональных возможностей, которые можно динамически добавлять или удалять из системы (более реальная система плагинов).Моя структура EAR выглядит следующим образом:
MyApp.EAR
- META-INF
- lib
- plugins
- app.WAR
- logic1.JAR
- logic2.JAR
например: в приложении.xml У меня есть ссылки на app.WAR, logic1.JAR и logic2.JAR (они всегда находятся внутри системы), при запуске приложение ищет в папке «плагины» любые плагины (определенные JAR), которые будут добавлены в систему..
Надеюсь, мне стало понятнее, что я пытаюсь сделать ...