EAR中的有效项目结构

时间:2016-03-03 19:02:12

标签: java java-ee cdi wildfly ear

我在.ear文件中打包了一个应用程序。这是结构:

EmployeeManager
| --- EmployeeManagerEJB.jar
--- src /(1)
| --- EmployeeManagerJSF.war /
---的index.xhtml
--- WEB-INF /
---班级/(2)
--- LIB /
| --- LIB /
--- EmployeeManagerIntegration.jar
--- SRC /(3)

我使用CDI注入位于(2)EJB中的类,接口在(3)中,实现在(1)中。但是CDI会抛出异常“类型不满意的依赖...”。我认为我的EAR结构有问题。我应该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:2)

默认情况下,CDI在子部署之间不起作用,因为它们不使用相同的类加载器。

  1. 您可以尝试将CDI bean放在可能有效的EAR / lib文件夹中
  2. 如果他们使用CDI
  3. ,请确保所有子部署都包含beans.xml
  4. 没有理由将其作为EAR部署,您可以将两个jar放在WAR / lib中,一切都会正常工作
  5. 您可以通过将类路径值添加到meta-inf / manifest.mf来定义子部署间依赖关系(这在容器之间有些标准,这里的野生动物示例:https://docs.jboss.org/author/display/WFLY8/Class+Loading+in+WildFly)< / LI>
  6. 或者您可以依赖容器实现并关闭子部署隔离(对于wildfly,请参阅以下内容:https://docs.jboss.org/author/display/WFLY8/Class+Loading+in+WildFly
  7. 您可以将CDI bean复制到使用它们的每个子部署