Mam 2 aplikacje działające w dwóch kontekstach: c1, c2 (oba zaraz po root). Wstawiłem startupListener w c1, aby udostępnić zmienną, a drugą w c2, aby ją pobrać.Udostępnione obiekty między webappami tego samego kocurka
Moja startuplistener w C1 jest:
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);
}
}
In C2 aplikacji, to jest tak:
public void contextInitialized(ServletContextEvent sce) {
ServletContext context = sce.getServletContext().getContext("/c1");
HashMap<String,Object> database = (HashMap) context.getAttribute("cache");
}
Kontekst w startupListener C2 zawsze jest null, próbowałem „/ c1 ',' c1 '. czego mi brakuje? (Używam tomcat6, jeśli to ma znaczenie) Dzięki
Jego wartość pobrana który jest zerowy, a nie kontekst Chyba? –
nie, kontekst jest pusty, co powoduje NPE w następnej linii. –