【发布时间】:2016-06-24 19:01:57
【问题描述】:
AppInitializer.java
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[]{AppConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override
protected String[] getServletMappings() {
return new String[]{"/api/*"};
}
}
AppConfig.java
@Configuration
@ComponentScan
@EnableWebMvc
public class AppConfig {
}
UserController.java
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(method = RequestMethod.GET)
public List<User> getUsers(){
List<User> users = userService.findAll();
return users;
}
当我尝试触发 http://localhost:8080/practise/api/users 时,它会导致“HTTP 状态 404” - /practice/api/users(其中 practice 是项目名称)。在 getServletMappings() 中,我将路径指定为 /api/*,而 UserController 类的请求映射为 /users。我不知道我哪里错了。当我访问 index.xml 时,它工作正常。
错误截图:
Error on the browser when I try to access the api of application
【问题讨论】:
-
当我触发 URL 时,tomcat 日志中没有错误说,给定 URL 没有映射。我试图打印一条语句getRootConfigClasses()、getServletMappings()。日志中也缺少打印语句。所以我假设,spring mvc 的配置可能是错误的。但是我怎么能弄明白呢?
标签: spring-mvc http-status-code-404 request-mapping