2016-12-02 2 views
0

Я получаю ошибку 404 с моим первым приложением Spring mvc, следуя всем конфигурациям, но не повезло. Не могли бы вы помочь выяснить проблему.Получение org.springframework.web.servlet.PageNotFound noHandlerFound error

Following is the change: 

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app 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"> 
    <display-name>HereWeGo</display-name> 


    <display-name>HereWeGo</display-name> 
    <servlet> 
     <servlet-name>spring-dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>spring-dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 


</web-app> 

весенне-диспетчерская-servlet.xml

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

    <mvc:annotation-driven /> 

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

</beans> 

HeyThere.java

package com.aditya.spring; 

import org.springframework.stereotype.Controller; 

import org.springframework.web.bind.annotation.RequestMapping; 

import org.springframework.web.servlet.ModelAndView; 

import org.springframework.web.servlet.config.annotation.EnableWebMvc; 


@EnableWebMvc 

@Controller 

public class HeyThere{ 

     @RequestMapping("/welcome") 
     protected ModelAndView handleRequestInternal(){ 
      ModelAndView modelandview = new ModelAndView("HelloPage"); 

      modelandview.addObject("welcomeMessage","Hi user, welcome to the first spring mvc application"); 

      return modelandview; 

     } 

} 

Hello.jsp

<html> 
<body> 
    <h1>First Spring MVC Application Demo</h1> 
    <h2>${welcomeMessage}</h2> 
</body> 
</html> 

В консоли сервера я получаю ниже предупреждения:

org.springframework.web.servlet.PageNotFound noHandlerFound 

WARNING: No mapping found for HTTP request with URI [/HereWeGo/] in DispatcherServlet with name 'spring-dispatcher' 

Мое имя проекта HereWeGo.

ответ

0

Ваша конфигурация выглядит нормально, за исключением @EnableWebMvc аннотацию (который является специфичным для конфигураций Java), который делает то же самое, как ваш <mvc:annotation-driven /> тег. (Ссылка здесь EnableWebMvc annotation meaning)

Также исправление этой проблемы, как указано в комментарии должны состоять в том, чтобы добавить <context:component-scan base-package="com.aditya.spring" /> spring-dispatcher-servlet.xml после тега <mvc:annotation-driven> для регистрации контроллера в контексте весеннего приложения.

Согласно вашему исключению, ваш контроллер сопоставляется с/welcome, поэтому вы должны попробовать localhost:<YourServerPort>/<YourWebAppDeployName>/welcome, чтобы ввести свой метод контроллера и получить доступ к вашему jsp-view.

+0

Удалена указанная аннотация и доступна с помощью «/ welcome», получая тот же ответ со следующей ошибкой. ** org.springframework.web.servlet.PageNotFound noHandlerFound ** ** ПРЕДУПРЕЖДЕНИЕ: Не найдено отображение запроса HTTP с URI [/ HereWeGo/приветствия] в DispatcherServlet с именем 'весна-диспетчеру' ** –

+0

Пожалуйста попробуйте localhost: 8080/com.aditya.spring/welcome, если 8080 - это ваш серверный порт, и дайте мне знать, если его работа –

+0

Не повезло, еще одно наблюдение : также дает 404 страницы. –

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