JavaEE7(GF4)@Inject ServletContext上下文返回java.lang.NullPointerException

时间:2013-11-11 09:05:34

标签: java java-ee dependency-injection glassfish cdi

我是CDI的新手,也许我做错了什么。 Here它说可以注入ServletContext。所以我有以下代码:

public class ComponentInitializator {

@Inject 
private ServletContext context;

public void initialize(){...}
}

但它返回java.lang.NullPointerException。如何解决?

2 个答案:

答案 0 :(得分:0)

ServletContext - 定义一组servlet用于与其servlet容器通信的方法。此资源将注入Servlet。将您的ComponentInitializator课程设为Servlet,而不是尝试访问ServletContext

  @WebServlet("/ComponentServlet")
  public class ComponentInitializator extends HttpServlet{
    @Inject
    private ServletContext context;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
                      throws ServletException, IOException {
        PrintWriter out=resp.getWriter();
        out.println(context);
    }
 }

答案 1 :(得分:0)

Afaik它应该有用。

这个模块非常精简,所以它可能更容易使用并省去麻烦:

http://deltaspike.apache.org/servlet.html