最近我将我的 tomcat 服务器从 6.x 版本升级到了最新的 7.x 版本。
我想出了一点麻烦,希望得到帮助。
我有一个应用程序调用 MyApp
在 tomcat6 上,当我访问http://www.example.com/MyApp/page/ 时, 我通常会得到想要的结果。
现在,在 tomcat7 上,访问相同的确切 url(带有尾部斜杠)我收到错误:“资源不可用”,因为 tomcat 认为 /MyApp/page/ 是一个完整的 webapp 名称而不是请求名称MyApp webapp 下的页面。
我需要在我的 url 末尾加上斜杠,否则我会收到错误:“HTTP 状态 405 - 不支持请求方法‘GET’”,这没关系,因为我真的不允许“页面”请求的 GET 方法.
如果有人知道如何告诉 tomcat 在现有 webapp 路径之后的斜杠不应该假设将它重定向到新的 webapp 调用整个“字符串”并像在 tomcat6 上那样处理请求,那就太好了!
检查您的欢迎文件列表..接下来是猜测...
我相信问题的本质是当 Tomcat 出现 / 时 - 它有几个选项 - 迭代欢迎文件列表 - 没有任何东西 - 显示目录列表(如果启用)
有趣的地方就开始了……很多人想使用 *.do 来处理像 struts 这样的东西。所以他们希望index.do成为主页。或者也常见的是index.jsp,其中*.jsp 映射到JspServlet。
这就是事情变得有趣的地方。假设您的欢迎文件是index.jsp、index.do。
Tomcat (IIRC) 所做的是首先迭代欢迎文件列表以查找该名称的资源。
然后它将进行第二遍寻找匹配的映射。因此,如果在欢迎列表中指定了index.jsp,并且映射了*.jsp。然后tomcat会尝试转发到index.jsp,你会得到404。
所以我猜测您有一个 servlet 映射和欢迎文件重叠。并且该 servlet 的行为不支持 GET。(因此是 405)
归档时间: |
|
查看次数: |
8742 次 |
最近记录: |