我正在尝试从过滤器中获取登录页面,如下所示: context.getRequestDispatcher( “/ loginpage.jsp”) (然后我想转发)
现在,如果我执行context.getContext(“/ loginpage.jsp”),它会正确显示我想要的资源的文件系统路径。这意味着它确实可以看到它。但是使用请求调度程序它就不会解决。
我以非常非标准的方式运行这个tomcat。我正在调用java.exe,其中包含catalina.sh通常会调用的所有属性和选项。我同意这可能是我所有问题的原因,但我仍然有兴趣找到可能会在这里发生的事情。
(注意:这只是在开发环境中这样运行,并且直到最近才一直正常工作。但是我最近对dev env进行了重大修改,显然已经破坏了某些东西)
修改 我刚注意到的另一点是,即使尝试访问完全静态的资源(如/css/styles.css等)也失败了。所以这不是getrequestDispatcher的一个特定问题,但我认为更基本的东西?
答案 0 :(得分:1)
解决方案非常简单,而且误解了CATALINA_HOME / CATALINA_BASE的工作方式: 放在CATALINA_HOME / conf中的任何内容似乎都会被忽略。所以即使我在CATALINA_HOME / conf中有web.xml和content.xml,它也会忽略它。
任何日志(应用程序日志,catalina.logs,localhost.log,host-managed.log等)都没有异常或错误。所以调试这个问题真的很难。
这个问题帮助我找出答案: https://serverfault.com/questions/205154/war-deployed-in-tomcat-not-showing-up-at-url-getting-404-instead