Я хотел бы обновить свой REST-Webservice, предоставив разные значения заголовков Accept для разных версий (см. http://barelyenough.org/blog/2008/05/versioning-rest-web-services/).Spring MVC 3.1 - управление версиями веб-сервисов REST
Проблема заключается в том, что не представляется возможным с Spring MVC 3.
Мой контроллер выглядит следующим образом:
@Controller
@RequestMapping("test")
public class RestController {
@RequestMapping(method = RequestMethod.GET, produces = "application/vnd.example.item-v1+json")
@ResponseBody
public ItemV1 getItem() {
return new ItemV1();
}
@RequestMapping(method = RequestMethod.GET, produces = "application/vnd.example.item-v2+json")
@ResponseBody
public ItemV2 getItem2() {
return new ItemV2();
}
}
Когда я пытаюсь получить доступ к одной из этих методов, я получаю Исключение:
java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path '/test'
Я пропустил что-то, или это невозможно с помощью Spring MVC? Я знаю, что это возможно с JAX-RS ...
У вас есть HTTPMessageConverter иметь производит тип? Когда вы запускаете регистрацию, что вы получаете? – chrislovecnm
Да, я знаю. Если вам интересно: вам нужно добавить приложение/* + json к поддерживаемым типам носителей конвертера сообщений Jackson. Если я удалю один метод, он работает. – Felix
Я получаю ошибку, упомянутую выше. – Felix