Я хочу изменить версию своего веб-сервиса REST, предоставив разные значения заголовка Accept для разных версий (см. ="noreferrer">http://barelyenough.org/blog/2008/05/versioning-rest-web-services/).
Проблема в том, что это невозможно с 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...
produces
с классомMediaType
? Может быть, вам нужно расширить этот класс и добавить к нему свои собственные значения? - person nickdos   schedule 14.03.2012