【发布时间】:2011-12-03 19:38:17
【问题描述】:
我正在尝试评估 Glassfish 3.1 上的 CDI,尽管我已经完成了使其正常工作,但当我尝试将我的代码拆分到单独的部署模块中时,我收到了一个奇怪的错误。更具体地说:
我在同一个实用程序项目中捆绑了两个类(比如说CommonLib.jar);类名是UserDatabase 和UserDatabaseEntityManager,它们的定义如下(在本消息末尾的 PS 中)。
我还有一个带有 EJB3.1 模块的 EAR。
当我选择将 CommonLib.jar 部署为 EAR 的“捆绑库”时,我收到以下错误:
部署期间发生错误:加载应用程序时出现异常:
WELD-001408在注入点 [[field]@UserDatabase @Inject com.test.TestEJB.itemPersistenceEm] 带有限定符 [@UserDatabase] 的类型 [EntityManager] 的依赖关系不满足。详情请见server.log。
当我将 CommonLib.jar 部署为共享库时也遇到与上述相同的错误(在 $glasshfish_installation_path/domains/domain1/lib 下复制的 jar 文件)
但是,如果我选择在 EJB 项目中只包含两个类(UserDatabase 和 UserDatabaseEntityManager)(因此它们在 EJB 模块中编译),那么注入工作正常。
我是否面临类加载器问题?有什么想法可以解决这个问题吗?
【问题讨论】:
标签: glassfish-3 cdi jboss-weld