Java EE限定符注释未被拾取

时间:2014-05-06 17:18:43

标签: dependency-injection java-ee-7

我在youtube上关注一个简​​单的Java EE 6注释视频。我在github上创建了一个repo。有一个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

1 个答案:

答案 0 :(得分:1)

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

ProduceFormalGreeting中你必须使用javax.enterprise.inject.Produces(不是javax.ws.rs.Produces