Как запустить CDI на войне и EJB, если оба они включены в EAR - PullRequest
3 голосов
/ 27 октября 2011

Я пытаюсь создать корпоративное приложение, которое собрано в EAR. Это приложение должно содержать один или несколько ejb-jars и один или несколько war . Я хочу активно использовать CDI , перехватчиков и продюсеров. На первом этапе я хочу использовать Log-Producer , который помещается в ejb-jar во всех областях приложения.

Я создал файл beans.xml в папках ejb / META-INF и war / WEB-INF /. Создание EAR работает. Но развертывание на сервере Glassfish (3.1) завершается неудачно с ClassNotFoundException класса Interceptor, который помещается в ejb-jar .

Снятие EAR и развертывание ejb-jar внутри war работает, как и ожидалось.

В связи с модульностью и наличием war и ejb-jar развертывание на основе EAR приветствуется.

Итак, вопрос: есть ли способ создать полнофункциональный EAR, включая CDI и другие полезные вещи?

Большое спасибо.

Приветствие Ansgar

1 Ответ

1 голос
/ 31 января 2012

У нас были аналогичные проблемы с CDI на JBoss 6. Обходной путь для нас состоял в том, чтобы сконфигурировать развертыватель WAR для использования одной глобальной области загрузчика классов вместе с другими приложениями, развернутыми в файле EAR. По умолчанию каждое приложение в файле WAR использует собственную область загрузчика классов. К сожалению, я не знаю, есть ли подобная конфигурация для Glassfish, но я думаю, что есть.

На трекере проблем Glassfish есть открытый билет , который также может относиться к вашей проблеме.

...