我遇到了一个问题,Tomcat 将额外的路径信息视为 servlet 名称的一部分。这破坏了我们的 web 应用程序中的一堆 RESTFul 功能(我们使用额外的路径信息而不是 ?name=value 对来进行爬虫友好链接)。
它以前可以正常工作,但是在添加显式映射并删除Invoker
我们以前用于为 servlet 提供服务的 servlet 后它就坏了。例如考虑以下链接:
MyServlet
曾经被正确调用,并且“/param1/param2/param3”getPathInfo()
在HttpServletRequest
.
现在,Tomcat 似乎正在尝试将 MyServlet/param1/param2/param3 作为 servlet 加载:
[23/Sep/2008:16:44:23 -0700]“GET /servlet/MyServlet/param1/param2/param3 HTTP/1.0”404
这是它们在 web.xml 中定义和映射的方式,只需点击“ http://mydomain.com/servlet/MyServlet ”即可。
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.myclass.etcetera.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/servlet/MyServlet</url-pattern>
</servlet-mapping>