我有 2 个 webapps 在两个上下文中运行:c1、c2(都紧跟在根之后)。我在 c1 中放了一个 startupListener 来共享一个变量,在 c2 中放另一个来检索它。
我在 c1 中的启动监听器是:
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,如果这很重要)谢谢