Spring MVC 3.1 — управление версиями веб-сервисов REST

Я хотел бы версионировать свой REST-Webservice, предоставляя разные значения заголовка Accept для разных версий (см. http://barelyenough.org/blog/2008/05/versioning -остальные-веб-сервисы/).

Проблема в том, что это невозможно с 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'

Am Я что-то упустил, или это невозможно с Spring MVC? Я знаю, что это возможно с JAX-RS...

6
задан Felix 12 March 2012 в 18:02
поделиться