2016-02-29 76 views
0

您好我知道這個問題已經被問和回答了許多許多times..I檢查各種問題上stackoverflow和其他網頁,但仍無法找到解決方案的Spring Web應用程序中顯示HTTP狀態404 -

我很多初學者到Spring MVC

我正在嘗試使用Spring MVC- Controller創建一個簡單的HelloWorld程序。

我寫了下面的代碼,但它給我HTTP Status 404當我嘗試訪問http://localhost:5151/SpringMaven/

這是我的項目層次

enter image description here

的web.xml

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

Spring配置文件

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

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

控制器

@Controller 
public class HelloController { 


    @RequestMapping("/welcome") 
    public ModelAndView helloWorld() { 

     String message = "Hello World"; 
     return new ModelAndView("welcome", "message", message); 
    } 
} 

我一直在嘗試2天,但無法獲得成功。請指引我

感謝

+5

訪問此http://本地主機:5151/SpringMaven /歡迎的輸出是什麼 –

+0

相同的錯誤消息,HTTP狀態404 - – Kirmani88

+0

什麼是Spring配置文件的名稱? – shazin

回答

1

與此web.xml嘗試:

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> 
</context-param> 

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
<listener> 
    <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> 
</listener> 

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

    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>com.evantage</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

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

並在你的di中啓用autowire spatcher:

<!-- Enable autowire --> 
<context:annotation-config /> 
+0

現在我receving以下錯誤消息 'HTTP狀態500 - Servlet.init()爲servlet調度投擲exception' – Kirmani88

+0

':從ServletContext的資源IOException的解析XML文檔[/com.evantage];嵌套的例外是java.io.FileNotFoundException:無法打開ServletContext的資源[/com.evantage]' – Kirmani88

+0

這顯然是尋找路徑配置' com.evantage'。 '嘗試把你的Spring XML方面' /WEB-INF/dispatcher-servlet.xml的位置 – jmcg

-1

因爲您嘗試訪問/SpringMaven URL,但你已經綁定你的控制器動作/welcome路徑。

要麼將​​@RequestMapping註釋更改爲使用預期的URL,要麼更改爲http://localhost:5151/welcome

CNC中

並確保您的控制器是申請爲服務 - 無論是在Spring配置手工註冊或啓用MVC註解掃描所以Spring可以自動找到@Controller -annotated服務。

0

將這些行添加到您的調度程序servlet中。

<context:component-scan base-package="com.evantage"/> 
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> 
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /> 
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> 

添加這些線在web.xml

<listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

讓我知道什麼是輸出。

UPDATE: 在dispatcher-servlet.xml中添加那些行的<bean>標記。

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

感謝響應..我仍然得到同樣的404-頁 – Kirmani88

+0

如果沒有,那麼我想知道你的服務器配置。該服務器使用,它維護端口5151 –

1

嘗試把它添加到Spring配置文件:

<mvc:annotation-driven> 

而且在頂部添加此架構中:

http://www.springframework.org/schema/mvc 
+0

它給我下面的錯誤'前綴「MVC」爲元素「MVC:註解驅動的」不bound.' – Kirmani88