Wildfly应用程序中的CDI注入

时间:2014-04-30 14:44:56

标签: dependency-injection cdi wildfly

我写了一个HttpServlet,它被部署到WAR文件中的Wildfly容器中。 servlet看起来像这样:

 public class MyCallback extends HttpServlet {
    @Inject
    @Any
    private Event<MyEvent> event;

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String eventName = request.getParameter("EVENT_NAME");
        MyEvent e = new MyEvent(eventName);
        event.fire(e);
    }
}

我还创建了一个beans.xml文件(详细为here)并将其放在我的WEB-INF目录中。不幸的是,当代码尝试执行NullPointerException行时,我仍然得到event.fire(e),这表明注入不起作用。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

尝试添加至少一个CDI bean(它不必做任何事情),例如。

@ApplicationScoped
public class JustABean { }

我在Wildfly测试版上遇到了类似的问题,似乎没有单一的#34;正常&#34;豆CDI引擎不会开始。 Wildfly也提供CDI 1.1,其中beans.xml是可选的。