Spring MVC REST nohandler错误

时间:2015-09-23 15:59:44

标签: rest spring-mvc

我是Spring MVC和REST的新手。我遇到了一个简单的测试控制器的问题,我已经从我在这里找到的例子和春季文档中加入了这个...

当我点击网址http://localhost:8080/test-api/user/14时,我收到以下错误消息 我得到错误:

Sep 23, 2015 11:26:55 AM org.springframework.web.servlet.PageNotFound  noHandlerFound
WARNING: No mapping found for HTTP request with URI [/test-api/user/14] in DispatcherServlet with name 'testapi'

我使用xml进行配置..我还没准备好转移到java配置。

的web.xml         Spring Web MVC应用程序

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

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

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

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

testapi-servlet.xml - 仅包含组件扫描和注释驱动元素

 <context:component-scan base-package="com.springtest.testapi" />
<mvc:annotation-driven />

SpringTest.java

 package com.springtest.testapi.api;
 @RestController
 public class SpringTest {
    @RequestMapping(value="/user/{id}", method = RequestMethod.GET)
    public User getUser(@PathVariable int id) {
    User u = new User(id,"Test","Me");
    return u;
}

我应该定义什么处理程序..没有示例或文档说明需要定义处理程序..

2 个答案:

答案 0 :(得分:0)

删除contextConfigLocation。

替换以下内容:

<servlet-mapping>
    <servlet-name>springtest</servlet-name>
    <url-pattern>/test-api</url-pattern>
</servlet-mapping>

确保您的xml文件是test-api-servlet.xml而不是testapi-servlet.xml

答案 1 :(得分:0)

我发现了我的问题。我在组件扫描中拼错了包。我编写的示例代码已被编辑,因此它没有完全代表我所拥有的内容并且实际上是正确的。