【问题标题】:Generic return object for a collection of objects in RESTful Spring3 appRESTful Spring3 应用程序中对象集合的通用返回对象
【发布时间】:2010-11-29 15:52:32
【问题描述】:

我正在寻找一种在我的 REST 服务中返回一组对象的通用方法。我使用 Spring3 消息转换器和 @ResponseBody 注释。

一些网站说 JAXB2 在返回标准 java.util.List 时存在“问题”,并且找到的所有示例都为每个数据域定义了一个专用类(例如作者、产品、客户),例如:

http://www.ibm.com/developerworks/web/library/wa-spring3webserv/index.html (参见“资源收集”,第二段)

有没有人找到一种为此提供通用类/方法的方法,这样我就不用创建所有这些集合类了?

2011 年 4 月 5 日更新:我在这方面还没有真正取得任何进展。返回一个通用列表对象总是会导致一个 JAXBException “类 XXX 或其任何超类在此上下文中都是已知的”

【问题讨论】:

    标签: java spring rest collections jaxb


    【解决方案1】:

    在 JAX-RS 框架(使用 JAXB 进行 XML 绑定)中创建 REST 服务时,您可以返回一个列表。示例见:

    当您尝试使用 Spring 执行此操作时会发生什么?

    【讨论】:

    • 发送带有“application/xml”接受标头的 REST 请求会导致 406 NOT_ACCEPTABLE 状态代码。通过“application/json”媒体类型序列化为 JSON 是可行的。以前我也有一些奇怪的 500 内部服务器错误,根本没有任何日志或控制台输出,但现在无法重现......(当然!):)
    【解决方案2】:

    您可以只返回一个 ModelMap 并在其中放置您想要的任何对象,包括数组。

    【讨论】:

    • 真的吗?虽然,正如我的问题所述,我正在使用 @ResponseBody 注释??
    【解决方案3】:

    想知道...您是否在请求标头中设置了 Content-Type : application/xml ?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多