Dependency injection 未拾取Java EE限定符批注

Dependency injection 未拾取Java EE限定符批注,dependency-injection,java-ee-7,Dependency Injection,Java Ee 7,我正在youtube上观看一个简单的JavaEE6注释视频。我已经在github上创建了一个。首先是一个servlet,它使用注释创建问候语字符串 @WebServlet(urlPatterns = {"/HelloServlet"}) public class HelloServlet extends HttpServlet { @Inject @Formal String greetingMessage; ... } 正式限定符的定义如下: @Qualifier @Ret

我正在youtube上观看一个简单的JavaEE6注释视频。我已经在github上创建了一个。首先是一个servlet,它使用注释创建问候语字符串

@WebServlet(urlPatterns = {"/HelloServlet"})
public class HelloServlet extends HttpServlet {

    @Inject @Formal
    String greetingMessage;
...
}
正式限定符的定义如下:

@Qualifier
@Retention(RUNTIME)
@Target({TYPE, METHOD, FIELD, PARAMETER})
public @interface Formal {}
而制作人是:

public class ProduceFormalGreeting {

    @Produces
    @Formal
    public String GetFormalGreeting(){
        return "Good morning !";
    }
}
在编译时,我从NetBeans获得以下消息:

Unsatisfied Dependency: No bean matches the inject point

在运行时,servlet中的字符串为
null

您必须将
beans.xml
文件添加到WEB-INF。现在您有了
bean.xml
文件


produceformgreeting
中,您必须使用
javax.enterprise.inject.products
(而不是
javax.ws.rs.products

我改为beans.xml。同样的结果。对于在注入点[[BackedAnnotatedField]\@Inject\@Formal mypackage.HelloServlet.greetingMessage]处具有限定符[\@Formal]的类型[String]的未满足依赖项,您还有一个错误。在
produceformgreeting
中,您必须使用
javax.enterprise.inject.products
(而不是
javax.ws.rs.products
)不客气。顺便说一句,我已经更新了我的答案,现在所提到的问题都收集在一起了。