我有三个 Maven 项目:
- 核心(packagetype=JAR) 与src/main/resources/beans.xml bean-discovery-mode="annotated"
- 带有src/main/resources/beans.xml bean-discovery-mode="annotated" 的webfragment (packagetype=JAR)
- 带有src/main/webapp/WEB-INF/beans.xml bean-discovery-mode="annotated" 的webproject (packagetype=WAR)
我的类路径中有 org.jboss.weld.servlet:weld-servlet 2.2.9.Final (CDI 1.2) 并使用 tomcat 7.0.55。此外,我使用 Servlet 3、Deltaspike 1.2.1、Mojarra 2.2.10。
我所有的 CDI bean 都有一个bean 定义注释(请参阅在 CDI 1.1 中注释的 bean 发现模式的含义)
焊接警告我
servletWeldServlet [WARN] WELD-ENV-001004:同时找到 WEB-INF/beans.xml 和 WEB-INF/classes/META-INF/beans.xml。同时使用这两个位置并不便于携带。Weld 将使用 jndi:/localhost/webproject/WEB-INF/beans.xml。
但一切正常。
所以,我删除了所有 beans.xml,因为我不应该在 CDI 1.2 中需要它们,但之后就没有任何效果了:WELD-001408: Unsatisfied dependencies...
我错过了什么?这是一个网络片段问题吗?