2

我是 spring mvc 和 Maven 的新手。我正在尝试让一个简单的 hello world 示例正常工作。我看不出哪里出错了,应该是直截了当的。我在 MAC OS 上使用 Maven 3、Eclipse Kepler、Tomcat 6。

有人可以看看下面的代码,看看有什么问题吗?当我点击时,localhost:8080/MyTesting我希望在浏览器上得到我的欢迎文件,但我在浏览器上得到了这个:

HTTP Status 404 -

type Status report

message

description The requested resource is not available.

在 Eclipse 控制台上,我得到:

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

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/xsd/maven 4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
  <groupId>MyTesting</groupId>
  <artifactId>MyTesting</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
    </plugins>
  </build>

    <properties>
        <spring.version>3.1.1.RELEASE</spring.version>
    </properties>


    <dependencies>

        <!-- Spring 3 dependencies -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>

    </dependencies>
</project>

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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>MyTesting</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

mvc-调度程序-servlet.xml

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

        <context:component-scan base-package="main.com.mytesting" />

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


  </beans>
4

5 回答 5

1
  1. 从 Spring 开发人员的这个示例开始,然后自己调整它。它使用更新、更简单的 Java Config(基于注解)配置。
  2. 如果你还想调试你当前的代码,你能把它推送到 github 上吗?您在控制器中的 requestMapping 可能不正确。
于 2013-12-28T14:20:31.303 回答
1

我认为您不会为调度员地图创建控制器。我发现本教程对创建 spring mvc 非常有帮助。

于 2013-12-28T13:20:49.477 回答
1

从您的帖子中,我没有看到任何控制器配置,错误 404 表示所需的资源不存在。

有两种方法可以基于注释或以编程方式开发 Spring Web MVC 项目。这是关于编程方法的教程,也是关于基于注释的方法的教程。

于 2013-12-28T14:11:56.327 回答
0

多谢你们,

在浪费了我几个小时的开发时间之后,现在一切都很好。实际上,我的文件夹结构中有错字。我的文件夹结构是 main.com.mymesting.controllers,因此组件扫描失败。我将其更改为 main.com.mytesting.controllers。它现在工作正常。

于 2013-12-28T23:02:27.210 回答
0

Check your spring configuration file and folder structure "src/main/java"

<context:component-scan base-package="com.wenzinsapp.testapp.controller" /> is resembles as your folder structure

it could be the problem.

于 2015-03-04T11:03:52.410 回答