У меня есть несколько контроллеров компонентов CDI, которые я бы хотел повторно использовать в своих настольных веб-приложениях и мобильных веб-приложениях (здесь и далее называемые веб-компонентами).Определение многоразовых CDI-компонентов в одном контейнере
Сценарий:
Я одно приложение Java EE (EAR)
- У меня есть компонент web.war (сослаться на рабочий стол веб-приложения)
- У меня есть mobile.war компонент (для ссылки на мобильную веб-заявку)
Я не хочу использовать отзывчивый дизайн в основном веб-приложении из-за того, как он был разработан, поэтому мне просто нужно разработать мобильная версия, чтобы получить доступ в другой подобласти
m.mydomain.com
Мое намерение состоит в том, чтобы создать многоразовый-component.jar содержать все контроллеры CDI, а затем включить этот файл JAR в веб-компонентах.
Однако это не удается Jboss weld
обнаруживает такое же имя компонента, weld error 00414
Однако, я определил некоторый общий жизненный цикл обработки запроса на этом CDI бобов, например
@OnRequest()
@Named
@RequestScope
public class MyBeanController{
}
@OnRequest
есть жизненный цикл обратного вызова я определил, что делает много вещей, в том числе разрешений на определенные ресурсы, которые определяются извне в конфигурационном файле.
О чем я думал.
Извлеките @Named
и аннотации области в reusable-component.jar
, а затем разложите их отдельно на разных веб-компонентах.
Проблема: у меня есть несколько cdi beans, довольно много, потому что это огромные приложения, и расширение каждого из них в веб-компоненте будет много рефакторинга.
Мой вопрос:
Как мне удается повторно использовать этот КДИ бобы, в этом веб-компонентов?
FYI: Я посмотрел на альтернативном/стереотипе, сценарии специализации, это будет по-прежнему требует, чтобы я простирается все бобы в любом случае, и моя @OnRequest
аннотации обработка жизненного цикла делает поиск боба, используя имя @Named
или боба (как указано в cdi), поэтому, если бы я использовал специализацию или альтернативы, как повлияет этот поиск?
Совместная библиотека на основе CDI в EAR с несколькими WARs = ужас. Связанный блог: http://balusc.blogspot.nl/2013/10/cdi-behaved-unexpectedly-in-ear-so.html – BalusC
@BalusC Итак, в этом случае, какой вариант вы бы предложили? Будут ли реализованы различные альтернативы в различных веб-компонентах? – maress