. Есть много вопросов, связанных с этой ошибкой в Stack Overflow, и я безуспешно пробовал решения для наиболее подходящих из них. Вот моя проблема.
Я пытаюсь сопоставить этот запрос: / user / {userId}
, где userId
- это строка. Я могу обрабатывать GET-запросы к / user
с помощью следующего аннотированного класса и конфигурации Spring :
UserController.java
@Controller
@RequestMapping("/user")
public class UserController {
private static final Logger log = Logger.getLogger(UserController.class.getName());
@RequestMapping(method=RequestMethod.GET)
public @ResponseBody String info() {
log.debug("mapping succeeded!");
return "foo
";
}
}
web / WEB-INF / user-servlet. xml
web.xml
user
org.springframework.web.servlet.DispatcherServlet
1
user
/user/*
Затем, когда я запрашиваю / user
2011-01-14 15:47:41,942 DEBUG [com.example.rest.UserController] (http-11080-1) mapping succeeded!
Теперь нужно сделать что-нибудь интересное. Я меняю свой код на следующий:
@Controller
@RequestMapping("/user")
public class UserController {
private static final Logger log = Logger.getLogger(UserController.class.getName());
@RequestMapping(value="/{userId}", method=RequestMethod.GET)
public @ResponseBody String info(@PathVariable String userId) {
log.debug("mapping succeeded! userId=" + userId);
return "foo
";
}
}
У меня ужасный Сопоставление не найдено ...
(main) Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@36598d00: defining beans [userController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor]; root of factory hierarchy
(main) instantiating UserController
(main) Mapped URL path [/user/*] onto handler 'userController'
(main) Mapped URL path [/user/*.*] onto handler 'userController'
(main) Mapped URL path [/user/*/] onto handler 'userController'
...
(http-11080-1) No mapping found for HTTP request with URI [/user] in DispatcherServlet with name 'user'
(http-11080-1) No mapping found for HTTP request with URI [/user/foo] in DispatcherServlet with name 'user'
(http-11080-1) No mapping found for HTTP request with URI [/user/] in DispatcherServlet with name 'user'
Что я делаю не так?