4

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

public class ComponentInitializator {

@Inject 
private ServletContext context;

public void initialize(){...}
}

但它返回 java.lang.NullPointerException。如何修复?

4

2 回答 2

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);
    }
 }
于 2013-11-11T09:18:32.010 回答
0

Afaik它应该工作。

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

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

于 2013-11-11T10:08:10.420 回答