我遇到的问题是Tomcat将额外路径信息视为servlet名称的一部分。这打破了我们的webapp中的一堆RESTFul功能(我们使用额外的路径信息而不是?name = value对用于爬虫友好链接)。
之前它正常工作,但是在添加显式映射并删除我们以前用于为servlet提供服务的Invoker
servlet之后它已经崩溃了。例如,请考虑以下链接:
MyServlet
过去被正确调用,getPathInfo()
上的HttpServletRequest
返回了“/ param1 / param2 / param3”。
现在,似乎Tomcat正在尝试加载MyServlet / param1 / param2 / param3作为servlet:
[23 / Sep / 2008:16:44:23 -0700]“GET / servlet的/ MyServlet /参数1 / param2的/参数3 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>
答案 0 :(得分:2)
您需要将其映射到/ servlet / MyServlet / *
您错过了“/*”。