ServletContext属性为空
问题描述:
属性repository
返回null
。ServletContext属性为空
public class BaseServlet extends HttpServlet {
protected MyPersistentManager getPersistentManager(){
return (MyPersistentManager) getServletContext().getAttribute("repository");
}
//...
}
在这里,我将它设置:
public class ServletListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
/*
load data
*/
ServletContext servletContext = sce.getServletContext();
MyPersistentManager persistentManager = new MyPersistentManager();
servletContext.setAttribute("repository", persistentManager);
}
}
为什么没有被设置?看起来上下文没有初始化?我试图重置Tomcat,但这并没有解决问题。我正在使用Netbeans。
答
是否在web.xml中注册了ServletListener类?
<listener>
<listener-class>mypackage.ServletListener</listener-class>
</listener>
从documentation:此接口的“实现接收通知有关更改Web应用程序,他们是一部分的servlet上下文要接收通知事件,实现类必须在部署描述符中配置为网络应用程序。“
否。这应该解决它,是吗? – dantuch 2011-05-16 01:51:30
是的。我已经添加了相关的文档链接。 – iruediger 2011-05-16 01:53:30
非常感谢,现在所有作品:) – dantuch 2011-05-16 01:56:18