2010-01-18 12 views
5

Sto utilizzando tomcat 6 e ho due webapp. Uno è webapp1 e l'altro è webapp2. Da un filtro all'interno di webapp2, sto cercando di accedere all'altra webapp i.e webapp1. Il mio codice filtro è qualcosa di simile sottoTomcat non è in grado di ottenere ServletContext di un'altra webapp

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 

    HttpServletRequest req = (HttpServletRequest)request; 
    System.out.println("requeted path = " + req.getRequestURI()); 

    ServletContext othercontext = confg.getServletContext().getContext("/webapp1"); 
    RequestDispatcher dispatcher = othercontext.getRequestDispatcher(req.getRequestURI()); 
    dispatcher.forward(request, response); 
    chain.doFilter(request, response); 
} 

Qualunque idea cosa sto facendo male? Ricevo sempre null come valore di othercontext.

risposta

9

Impostare crossContext = "true" nel server.xml. Vedere lo documentation per il contenitore del contesto.

Impostare su true se si desidera che le chiamate all'interno questa applicazione per ServletContext.getContext() per tornare con successo un dispatcher richiesta per altre applicazioni web in esecuzione su questo host virtuale. Impostare su false negli ambienti di sicurezza false, per rendere getContext() restituire sempre null.

0

lavorava in un po 'diverso per Apache Tomcat 8.0.27. Invece di cambiare il suo server.xml, mi ci è voluto aggiornare il file context.xml di tomcat con l'attributo crossContext del tag Context.

Problemi correlati