为什么在maven spring项目中找不到资源错误

时间:2015-03-15 10:56:42

标签: java spring maven spring-mvc

我正在尝试制作其他人使用的静态Web服务。我需要首先制作如下的静态数据:

{"name":"abc"}

所以我开始使用Google搜索并找到编辑器或教程。首先,我在此处下载了编辑表单:https://spring.io/tools/sts/all

我将Maven类型作为我的第一个程序。我使用相同的内置服务器 Pivotal tc Server Developer Edition v3.1-config 。我的porm.xml看起来像这样:

porm.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>test1</groupId>
  <artifactId>test1</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>test1 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>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
</dependency>
  </dependencies>
  <build>
    <finalName>test1</finalName>
  </build>
</project>

现在我更改 web.xml

<web-app id="WebApp_ID" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Spring MVC Application</display-name>

   <servlet>
      <servlet-name>HelloWeb</servlet-name>
      <servlet-class>
         org.springframework.web.servlet.DispatcherServlet
      </servlet-class>
      <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/HelloWeb-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>      
   </servlet>

   <servlet-mapping>
      <servlet-name>HelloWeb</servlet-name>
      <url-pattern>/</url-pattern>
   </servlet-mapping>

</web-app>

的HelloWeb-servelet.xml

   <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
   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="test" />

  <!-- contentNegotiationManager bean added to avoid error 406-characteristics-not-acceptable-according-to-the-request on AJAX request's -->
  <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="jsonMessageConverter"/>
            </list>
        </property>
    </bean>
    <bean id="jsonMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />



    <!-- JSP View -->
    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="order" value="2" />
        <property name="prefix">
            <value>/WEB-INF/jsp/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>        
    </bean>

</beans>

的hello.jsp

<html>
   <head>
   <title>Hello Spring MVC</title>
   </head>
   <body>
   <h2>${message}</h2>
   </body>
</html>

controller.java

package tutorialspoint;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloController{

    static{
        System.out.println("hello class loaded");
    }

    @RequestMapping(value="/")
    public String home(){
        return "hello";
    }

    @RequestMapping(value="/hello", method = {RequestMethod.GET, RequestMethod.POST})
    public ModelAndView printHello(Model model) {
        System.out.println("GET/POST came");
        model.addAttribute("name", "abcd");
        return new ModelAndView("hello");
    }

}

当我按照 http://localhost:8080/test1/http://localhost:8080/test1/hello 运行我的项目时,这表明找不到资源。

以下是上传到dropbox的完整项目:

https://dl.dropbox.com/s/i95arkxng285fwp/test1.zip?dl=0

0 个答案:

没有答案