2016-12-02 21 views
0

我得到了404错误,我的第一个spring mvc应用程序,遵循所有的配置,但没有运气。你能帮忙解决问题吗?获取org.springframework.web.servlet.PageNotFound noHandler发现错误

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

还修复了这个问题,如在规定注释应该是在<mvc:annotation-driven>标记之后添加 <context:component-scan base-package="com.aditya.spring" /> spring-dispatcher-servlet.xml,用于在Spring应用程序上下文中注册控制器。

根据你的例外情况,你的控制器被映射到/ welcome,所以你应该尝试使用 localhost:<YourServerPort>/<YourWebAppDeployName>/welcome来输入你的控制器方法并访问你的jsp视图。

+0

删除指定的注释并以“/ welcome”访问,获得相同的响应并出现以下错误。 ** org.springframework.web.servlet.PageNotFound noHandlerFound ** **警告:否的DispatcherServlet找到HTTP请求与URI [/ HereWeGo /欢迎]名为 '弹簧调度' 映射** –

+0

请尝试本地主机:8080/com.aditya.spring /欢迎如果8080是您的服务器端口,并让我知道它的工作 –

+0

没有运气,多一个观察也给404页。 –