我有三个maven项目:
我在我的类路径中有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定义注释(参见Meaning of bean discovery mode annotated in CDI 1.1)
Weld警告我
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:不满意的依赖...
我错过了什么?这是一个网络碎片问题吗?
答案 0 :(得分:0)
注入点[BackedAnnotatedMethod]或类似内容的未受干扰的依赖
显示分辨率失败的注入点,检查注入字段的类型是否已注释。
那是:
@Inject
private SomeService injectedService;
然后CDI1.2要求如果没有定义beans.xml,它将只扫描带注释的bean。
因此
@SessionScoped or
{@ApplicationScoped, @Dependent, @RequestScoped, @ConversationScoped}
public class SomeService{}