Я бы хотел создать версию моего REST-Webservice, предоставив разные значения заголовка Accept для разных версий (см. 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 ...