【发布时间】:2014-09-23 22:09:36
【问题描述】:
我在访问 http://api:8080/users 时收到此错误,其中 404 和我在控制台中收到此错误:
2014 年 9 月 23 日下午 5:57:52 org.springframework.web.servlet.DispatcherServlet noHandlerFound 警告:在名称为“dispatcher”的 DispatcherServlet 中找不到带有 URI [/users] 的 HTTP 请求的映射
当我访问 http://localhost:8080/api/users 时,我在浏览器中收到 404,但在我的控制台中没有错误
applicationContext.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
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.xsd">
<context:component-scan base-package="com.api"/>
</beans>
调度程序-servlet.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:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
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-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
">
<context:component-scan base-package="com.api"/>
</beans>
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Users.java:
package com.api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/users")
public class Users {
@Autowired
public Users() {
}
@RequestMapping(method = RequestMethod.GET)
public void getUser() {
System.out.println("\nhere\n");
}
}
如果有人有任何线索,我将不胜感激。我已经查找了几个与我得到的错误相同的问题,但常见的解决方案是添加我已经拥有的,所以我不确定还能做什么。谢谢。
编辑:我刚刚将所有代码更新为最新的参考文档,但我仍然遇到同样的错误。 编辑:更新以显示我当前的文件状态。
【问题讨论】:
-
阅读 Spring 参考文档,您将旧配置与有关 Spring MVC 的新配置混合在一起。你的代码错了。
-
你能说得具体一点吗?
-
我已经用参考文档中的最新代码更新了我的问题,但仍然遇到同样的错误。
-
现在您的配置是正确的。 URL
http://api:8080/没有意义,要测试的 URL 必须是http://localhost:8080/CONTEXTROOT/users,其中CONTEXTROOT在您选择的项目Right Click -> Properties -> Web Project Settings中可用。如果您的项目已经部署在 Tomcat 中,那么 URL 必须是http://localhost:8080/projectname/users -
我已经完成了,但我仍然得到 404,但我的控制台没有错误。