我有两个webapps在两个上下文中运行:c1,c2(都在root之后)。我在c1中放置了一个startupListener来共享一个变量,另一个在c2中检索它。在同一个tomcat的webapps之间共享对象
我在C1 startuplistener是:
public void contextInitialized(ServletContextEvent sce) {
HashMap <String,Object> database ;
//some code to init database
ServletContext context = sce.getServletContext().getContext("/c1");
if (context!=null)
{
context.setAttribute("crossContext", true);
context.setAttribute("cache", database);
}
}
在C2的应用程序,它是这样的:
public void contextInitialized(ServletContextEvent sce) {
ServletContext context = sce.getServletContext().getContext("/c1");
HashMap<String,Object> database = (HashMap) context.getAttribute("cache");
}
在C2的startupListener的背景总是空的,我已经试过“/ c1','c1'。我错过了什么? (我使用的是tomcat6,如果有的话) 谢谢
它是空检索的值,而不是我猜的背景? – 2013-03-14 08:47:32
不,上下文为空,触发下一行的NPE。 – 2013-03-14 11:18:51