2016-09-06 81 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