在此代码中创建实现 contextInitializer
接口(interface)的 servlet,
然后使用此行访问 contextinitialized()
内的文件
InputStream input = getServletContext().getResourceAsStream("/WEB-INF/file.properties"));
发生了这个异常
java.lang.NullPointerException at
javax.servlet.GenericServlet.getServletContext(GenericServlet.java:160)
有什么想法吗?
最佳答案
ServletContextListener#contextInitialized()
给你 ServletContextEvent
为您提供 getServletContext()
的参数方法。
因此,应该这样做:
public void contextInitialized(ServletContextEvent event) {
InputStream input = event.getServletContext().getResourceAsStream("/WEB-INF/file.properties"));
// ...
}
也就是说,您通常不希望您的 servlet 实现此接口(interface)。听者有不同的目的。只需覆盖 HttpServlet#init()
如下:
protected void init() throws ServletException {
InputStream input = getServletContext().getResourceAsStream("/WEB-INF/file.properties"));
// ...
}
关于java - 我们可以在 contextInialized 方法中调用 getServletContext() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2320972/