2つのコンテキスト(c1、c2(ルートの直後))で2つのWebアプリケーションが実行されています。私は、変数を共有するためにc1にstartupListenerを置き、それを取得するためにc2にもう1つを入れます。同じtomcatのWebアプリケーション間で共有オブジェクト
C1での私のstartuplistenerは次のとおりです。
C2アプリで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);
}
}
が、それはこのようなものです:
public void contextInitialized(ServletContextEvent sce) {
ServletContext context = sce.getServletContext().getContext("/c1");
HashMap<String,Object> database = (HashMap) context.getAttribute("cache");
}
C2のstartupListenerでコンテキストは常にnullである
、私は「試してみました/ c1 '、' c1 '。私は何が欠けていますか? (私はtomcat6を使用しています(問題がある場合) ありがとう
そのnullで取得された値ではなく、私が推測するコンテキスト? –
いいえ、コンテキストはヌルで、次の行にNPEをトリガします。 –