我在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
。
答案 0 :(得分:1)
您必须将beans.xml
文件添加到WEB-INF。现在你有bean.xml
个文件。
在ProduceFormalGreeting
中你必须使用javax.enterprise.inject.Produces
(不是javax.ws.rs.Produces
)