CDI на GlassFish 3.1.1 b12 выдает ошибку «WELD-001408 Неудовлетворенные зависимости» - PullRequest
3 голосов
/ 03 декабря 2011

Я пытаюсь оценить CDI на Glassfish 3.1 и, несмотря на то, что мне удалось добиться того, чтобы он работал хорошо, когда я пытаюсь разделить свой код на отдельные модули развертывания, я получаю странную ошибку.Более конкретно:

У меня есть два класса, связанные в одном проекте утилиты (скажем, CommonLib.jar);Имена классов UserDatabase и UserDatabaseEntityManager, а их определения приведены ниже (в PS в конце этого сообщения).У меня также есть EAR с модулем EJB3.1.

Когда я выбираю развертывание CommonLib.jar как «связанной библиотеки» EAR, я получаю следующую ошибку:

Ошибка при развертывании: исключение при загрузкеapp: WELD-001408 Неудовлетворенные зависимости для типа [EntityManager] с квалификаторами [@UserDatabase] в точке внедрения [[field] @UserDatabase @Inject com.test.TestEJB.itemPersistenceEm].Пожалуйста, смотрите server.log для получения более подробной информации.

Та же ошибка, что и выше, я получаю также при развертывании CommonLib.jar в качестве разделяемой библиотеки (файл jar копируется в $glasshfish_installation_path/domains/domain1/lib), НО, если я выбираючтобы просто иметь два класса (UserDatabase и UserDatabaseEntityManager) в проекте EJB (таким образом, они скомпилированы в модуле EJB), тогда внедрение отлично работает.

Я сталкиваюсь с проблемой загрузчика классов?Есть идеи, как мне обойти эту проблему?

Ответы [ 2 ]

3 голосов
/ 12 декабря 2011

Просто предположение, потому что несколько дней назад я столкнулся с очень похожей проблемой со Glassfish и CDI: у вас есть beans.xml в каждый JAR, то есть в CommonLib.jar и EJB JAR, так что CDI сканирует их обоих?

Моя проблема возникла из-за того, что я думал, что размещения beans.xml в EAR будет достаточно, а это не так.

0 голосов
/ 04 декабря 2011

Звучит так, как будто вы столкнулись с некоторыми проблемами интеграции Glassfish CDI, которые мы обнаружили при работе над Seam 3 . Это может быть пара из них, так что вам придется посмотреть, какой из них может быть. Попробуйте протестировать на JBoss AS7 или Apache TomEE и посмотрите, есть ли у вас проблемы.

...