2016-09-06 72 views
0

我遇到此問題時,嘗試訪問本地主機URI http://localhost:8080/spring/olaMundoSpring它是在瀏覽器返回:Anottations在Spring MVC/Maven的不工作

狀態404所請求的資源不可用。

和:

沒有映射找到用於與URI HTTP請求[/彈簧/ olaMundoSpring]在> DispatcherServlet的名稱爲 'Spring MVC的分派器的Servlet'。

彈簧context.xml中似乎是好的:

設定05年,2016年下午9時45分24秒> org.springframework.beans.factory.xml.XmlBeanDefinitionReader> loadBeanDefinitions INFORMAÇÕES:從ServletContext的資源[/WEB->INF/spring-context.xml]

控制器加載XML bean定義:

package br.com.jayybe.spring; 

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

@Controller 
public class Controle { 

    @RequestMapping("/olaMundoSpring") 
    public String execute() { 
     System.out.println("Executando a lógica com Spring MVC"); 
     return "ok"; 
    } 
} 

IDE Eclipse DIR

的web.xml:

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

<servlet> 
     <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> 
     <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value> 
      WEB-INF/spring-context.xml 
      </param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> 
     <url-pattern>/</url-pattern> 
</servlet-mapping> 
</web-app> 

彈簧context.xml中:

<?xml version="1.0" encoding="UTF-8"?> 
<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" 
    xsi:schemaLocation="http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

    <context:component-scan base-package="br.com.jayybe.spring" /> 
    <mvc:annotation-driven /> 

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

</beans> 

的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0  http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.jayybe</groupId> 
    <artifactId>spring</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>spring Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-web-api</artifactId> 
     <version>7.0</version> 
    </dependency> 
    <dependency> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-context</artifactId> 
        <version>4.2.4.RELEASE</version> 
       </dependency> 

       <dependency> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-webmvc</artifactId> 
        <version>4.2.4.RELEASE</version> 
       </dependency> 
       <!-- Servlet --> 
       <dependency> 
        <groupId>javax.servlet</groupId> 
        <artifactId>javax.servlet-api</artifactId> 
        <version>3.1.0</version> 
       </dependency> 
       <dependency> 
        <groupId>javax.servlet.jsp</groupId> 
        <artifactId>jsp-api</artifactId> 
        <version>2.1</version> 
        <scope>provided</scope> 
       </dependency> 
       <dependency> 
        <groupId>javax.servlet</groupId> 
        <artifactId>jstl</artifactId> 
        <version>1.2</version> 
       </dependency> 
    </dependencies> 
    <build> 
    <finalName>spring</finalName> 
    </build> 
</project> 
+1

我不能看到你的測試有什麼問題。我會嘗試在[DispatcherServlet.doDispatch]中設置一個斷點(http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/DispatcherServlet.html#doDispatch -javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-)並從那裏開始。 –

+0

我應該期望在那裏測試/調試什麼? – JamesB

回答

1

試着改變你的註釋是這樣的:

@RequestMapping(value = "/olaMundoSpring", method = RequestMethod.GET) 

更改組件掃描:

<context:component-scan base-package="br.*" /> 

而且不要用白色使用名稱用於servlet映射的空間

+0

我做了你說的,它沒有工作,但我不知道我,我重新安裝日食,重新導入項目,它的工作....爲什麼我們不應該在servlet映射中使用空格? – JamesB