我是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;
}
我应该定义什么处理程序..没有示例或文档说明需要定义处理程序..
答案 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)
我发现了我的问题。我在组件扫描中拼错了包。我编写的示例代码已被编辑,因此它没有完全代表我所拥有的内容并且实际上是正确的。