GlassFish 3.1.1 b12上的CDI生成错误“WELD-001408不满意的依赖项”

时间:2011-12-03 19:38:17

标签: glassfish-3 cdi jboss-weld

我正在尝试评估Glassfish 3.1上的CDI,尽管我已经完成了使其运行良好,当我试图将我的代码拆分为单独的部署模块时,我得到一个奇怪的错误。更具体地说:

我在同一个实用程序项目中捆绑了两个类(假设是CommonLib.jar);类名是UserDatabaseUserDatabaseEntityManager,其定义如下(在此消息末尾的PS中)。 我还有一个带有EJB3.1模块的EAR。

当我选择将CommonLib.jar部署为EAR的“捆绑库”时,我收到以下错误:

  

部署期间发生错误:加载应用时出现异常:WELD-001408类型[EntityManager]的不满意依赖关系,注入点[[field] {{1}具有限定符[@UserDatabase] }]。有关详细信息,请参阅@UserDatabase @Inject com.test.TestEJB.itemPersistenceEm

与上面相同的错误当我将CommonLib.jar部署为共享库(在server.log下复制的jar文件)时,我也得到了 但是,如果我选择在EJB项目中只有两个类($glasshfish_installation_path/domains/domain1/libUserDatabase)(因此它们在EJB模块中编译),那么注入工作正常。

我是否面临过类加载器问题?我有什么想法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

只是一个猜测,因为几天前我遇到了与Glassfish和CDI非常相似的问题:每个 JAR中是否有beans.xml,即{{1}和EJB JAR,以便CDI扫描它们吗?

我的问题是因为我认为将CommonLib.jar放入EAR就足够了,事实并非如此。

答案 1 :(得分:0)

听起来您遇到了我们发现的一些Glassfish CDI集成问题while working on Seam 3。它可能是其中的几个,所以你必须看看它可能是哪一个。尝试在JBoss AS7或Apache TomEE上进行测试,看看是否还有问题。