Tomcat无法获得另一个webapp的ServletContext

时间:2010-01-18 19:24:24

标签: tomcat servlets servlet-filters

我正在使用tomcat 6,我有两个webapps。一个是webapp1,另一个是webapp2。从webapp2中的过滤器,我试图访问其他webapp,即webapp1。我的过滤器代码如下所示

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);
}

任何想法我做错了什么?我总是将null作为othercontext值。

2 个答案:

答案 0 :(得分:9)

在server.xml中设置crossContext =“true”。有关上下文容器,请参阅documentation

  

如果您想要进行通话,请设置为true   这个应用程序   ServletContext.getContext()来   成功返回请求   其他Web应用程序的调度程序   在这个虚拟主机上运行。调成   安全性中的false(默认值)   有意识的环境,使   getContext()始终返回null。

答案 1 :(得分:0)

Apache Tomcat 8.0.27 以不同的方式工作。我没有更改其server.xml,而是使用context.xml标记的crossContext属性更新了tomcat的Context文件。