2015-02-02 9 views
0

У меня есть веб-приложение, которое работает унаследованного прекрасно на котом 6. В этом приложении мы имеем сервлет, скажем DefaultServlet, который имеет следующие отображения в web.xmlПереход от Tomcat6 к Tomcat7

<servlet> 
<servlet-name>defaultServlet</servlet-name> 
<servlet-class>the.bhushan.servlets.DefaultServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>defaultServlet</servlet-name> 
<url-pattern>/</url-pattern> 
</servlet-mapping> 

Теперь, когда никакое другое сопоставление url не сопоставляется, тогда этот defaultServlet вызывается. Это мое требование.
В tomcat7 я использовал тот же сервлет, the.bhushan.servlets.DefaultServlet и помещал аннотацию @WebServlet ("/") на этот сервлет, но этот сервлет не вызван, поскольку он получил вызов в tomcat6.

ответ

0

Открыть web.xml и изменять номера версий Servlet API к «3.0»:

<web-app metadata-complete="false" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0" > 

набор метаданных полный = «ложь», чтобы убедиться, что сервер будет сканировать для аннотированных классов.

Убедитесь, что ваш класс по-прежнему расширяет «HttpServlet».

Убедитесь, что у вас нет дополнительных файлов servlet-api.jar в вашем приложении.

+0

Привет @Stefan, я внес изменения по вашему предложению. Но до сих пор не повезло. Странно то, что когда я меняю @WebServlet («/») на @WebServlet («/ *»), этот серлвет получает вызов, но он вызван для всех запросов, чего я не хочу. –

+0

Что делает DefaultServlet, MVC? В этом случае сопоставьте это с чем-то вроде «/ app/*». – Stefan

 Смежные вопросы

  • Нет связанных вопросов^_^