2013-05-13 1 views
2

У меня есть веб-приложение Java EE 6, работающее на Apache TomEE.Может ли CDI сканировать сконфигурированную папку во время впрыска для боба? (горячее развертывание)

Мое приложение определяет несколько интерфейсов A, B и C. У меня есть несколько файлов .jar, содержащих реализации для этих интерфейсов. Всякий раз, когда клиент делает определенный запрос, мое веб-приложение использует CDI для сканирования этих реализаций и внедряет любую реализацию.

Однако я не хочу заранее настраивать все эти файлы .jar реализации по имени. Я хотел бы просто настроить расположение папки, в которой находятся все эти файлы .jar реализации, и позволить CDI сделать обнаружение. Я хочу, чтобы CDI повторно просматривал эту папку при каждой инъекции, поэтому я могу добавлять и удалять файлы .jar без перезапуска моего веб-приложения.

Использование Tomcat VirtualWebappLoader или Tomice (1.6.0)'s jars.txt, я могу успешно установить такую ​​папку и иметь CDI-вставку. Jar beans, которые были доступны при запуске приложения. Тем не менее,

  • Я не был в состоянии вводить .jar бобы, которые не были доступны при запуске приложения, но добавил позже меня
  • Мой веб-приложение продолжает использовать инъекционные бобы из которых я удалил .jar полностью

Смогу ли я когда-либо добиться такого «горячего развертывания» с CDI? Если нет, можете ли вы помочь мне понять, почему?

+0

John Ament имеет право. Могу ли я спросить, каково ваше функциональное требование? VirtualWebappLoader не рекомендуется для производства и для разработки, кажется, достаточно просто перезапустить вместо этого? –

+0

Webapp функционирует как структура. Разработчики клиентских приложений могут отбросить компоненты в этой предварительно определенной папке и попросить Webapp обработать некоторые данные, используя компоненты, которые они только что установили. Поскольку Webapp будет одновременно обслуживать несколько разработчиков клиентских приложений, перезапуск вроде бы сказал. Я понимаю, что это не рекомендуется для производства, я в основном изучаю возможности CDI. – Caroline

ответ

3

Нет, это невозможно. CDI сканирует время развертывания файлов.

Смежные вопросы