У меня проблема с тем, что Tomcat обрабатывает дополнительную информацию о пути как часть имени сервлета. Это нарушает функциональность RESTFul в нашем веб-приложении (мы используем дополнительную информацию о пути, а не пары «имя = значение» для ссылок, удобных для сканирования).
Раньше он работал правильно, но не работал после добавления явных сопоставлений и удаления сервлета Invoker
, который мы ранее использовали для обслуживания наших сервлетов. Например, рассмотрим следующую ссылку:
http://mydomain.com/servlet/MyServlet/param1/param2/param3
MyServlet
раньше вызывался правильно, и "/ param1 / param2 / param3" был возвращен getPathInfo()
на HttpServletRequest
.
Теперь, похоже, Tomcat пытается загрузить MyServlet / param1 / param2 / param3 в качестве сервлета:
[23 / Sep / 2008: 16: 44: 23 -0700] "ПОЛУЧИТЬ
/ Сервлет / 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>