Я пытаюсь оценить 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), тогда внедрение отлично работает.
Я сталкиваюсь с проблемой загрузчика классов?Есть идеи, как мне обойти эту проблему?