Как отобразить сервлет для получения дополнительной информации о пути с помощью getPathInfo () - PullRequest
0 голосов
/ 24 сентября 2008

У меня проблема с тем, что 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>

1 Ответ

2 голосов
/ 24 сентября 2008

Вам необходимо сопоставить его с / servlet / MyServlet / *

Вы пропустили завершающий "/*".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...