2015-11-19 3 views
0

Я учусь Spring MVC, и я заблокирован, так как через несколько часов в этой задаче, которая должна иметь очевидное решение:ВНИМАНИЕ: Не найдено отображение запроса HTTP с URI org.springframework.web.servlet.PageNotFound noHandlerFound

  • Я определяю в web.xml папку DispatcherServlet springSoccer и настраиваю ее в springSoccer-servlet.xml в каталоге WEB-INF.

  • В springSoccer-servlet.xml Я настраиваю ViewResolver, настраивая проверку компонентов, указывающую на пакет моего контроллера.

Я развертывания в Tomcat 8.0 и когда я указываю мой браузер http://localhost:8080/SoccerSpringMaven3/springSoccer/users/ Я получаю сообщение об ошибке:

Nov 19, 2015 9:07:50 PM org.springframework.web.servlet.PageNotFound noHandlerFound 
WARNING: No mapping found for HTTP request with URI [/SoccerSpringMaven3/springSoccer/users] in DispatcherServlet with name 'springSoccer' 

Это просто проблема не найти мой RequestMapping. Найти ниже конфигурации:

web.xml

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

<web-app> 
    <display-name>Archetype Created Web Application</display-name> 


    <!-- Source project: sip05, branch: 01 (Maven Project) --> 
    <servlet> 
     <servlet-name>springSoccer</servlet-name> 
     <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 

     <load-on-startup>1</load-on-startup> 
    </servlet> 


    <servlet-mapping> 
     <servlet-name>springSoccer</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 


</web-app> 

springSoccer-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans  
     http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-3.2.xsd"> 


    <context:component-scan base-package="com.spring.soccer.controller" /> 

    <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
      <value>/WEB-INF/views/jsp/</value> 
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
    </bean> 

    <mvc:resources mapping="/resources/**" location="/resources/" /> 

    <mvc:annotation-driven /> 

</beans> 

SoccerController.xml

package com.spring.soccer.controller; 

import org.springframework.stereotype.Controller; 
import org.springframework.ui.ModelMap; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 

@Controller 
public class SoccerController { 

    @RequestMapping("/users") 
    public String printSoccerHome(ModelMap model) { 
     return "HelloSoccer"; 
    } 
} 

Все указатели ?. Большое спасибо.

+0

Вы не должны аннотировать 'SoccerController' с' @RequestMapping ("/ SoccerSpringMaven3/SpringSoccer") 'для того, чтобы это работало? Или напрямую вызовите 'http: // localhost: 8080/users'? 'DisptatcherServlet' не может найти сопоставление с' SoccerSpringMaven3/'при вызове' HandlerMapping'. – RK1

+0

Дело имеет значение !!!!!!!!!!!!! попробуйте/SoccerSpringMaven3/springSoccer/users – jny

+0

RK1 спасибо. Я попытался, но это не сработало, его понимание, что для URI сначала он получает корень контекста, затем имя сервлета, а затем все, что я помещаю в RequestMapping. Мой контекстный корень, определенный в POM, равен SoccerSpringMaven3, тогда ServletNAme - springSoccer. –

ответ

0

<servlet-name> определяет только то, что DispatcherServlet обрабатывает определенные запросы. Это не работает как аннотация @RequestMapping. Вы настроили только Spring, так что все запросов обрабатываются springSoccerDispatcherServlet.

Прочитано Spring MVC documentation- 21.2 The DispatcherServlet для получения дополнительной информации.

Для того, чтобы этот запрос на работу:

http://localhost:8080/SoccerSpringMaven3/springSoccer/users/

вы должны либо аннотировать контроллер с @RequestMapping("/springSoccer") или аннотировать метод с @RequestMapping("/springSoccer/users")

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