Spring MVC 3.1– 版本化REST Web服务

Spring MVC 3.1– 版本化REST Web服务,第1张

概述我想通过为不同版本提供不同的Accept标头值来对我的REST-Webservice进行版本控制(参见http://barelyenough.org/blog/2008/05/versioning-rest-web-services/).问题是,Spring MVC 3似乎无法实现.我的控制器看起来像这样:@Controller @RequestMappin

我想通过为不同版本提供不同的Accept标头值来对我的REST-Webservice进行版本控制(参见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")@ResponseBodypublic ItemV1 getItem() {    return new ItemV1();}@RequestMapPing(method = RequestMethod.GET,produces = "application/vnd.example.item-v2+Json")@ResponseBodypublic ItemV2 getItem2() {    return new ItemV2();}}

当我尝试访问其中一种方法时,我得到一个异常:

java.lang.IllegalStateException: Ambiguous handler methods mapped for http path '/test'

我错过了什么,或者Spring MVC是不可能的?我知道JAX-RS有可能……最佳答案http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-produces

这应该是你拥有东西的方式.你如何在GET请求中指定Accept标头?您是否100%肯定您的GET请求是否发送一个Accept标头值,该标头值仅匹配您指定的一种或另一种内容类型?如果你发送一个匹配两者的头,那么Spring将不知道哪个处理程序方法应该处理请求.

您可能需要将org.springframework日志记录发送到DEBUG以查看发生了什么,或者使用断点调试器和Spring源代码来查看实际发生的情况. “产生”是一个相对较新的功能,因此也有可能存在错误.

https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+SPR+AND+%28summary+%7E+%22mvc+produces%22+OR+description+%7E+%22mvc+produces%22%29+AND+status+%3D+Open 总结

以上是内存溢出为你收集整理的Spring MVC 3.1 – 版本化REST Web服务全部内容,希望文章能够帮你解决Spring MVC 3.1 – 版本化REST Web服务所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1250813.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存