【问题标题】:How to handle several marshalling profiles in RestEasy?如何在 RestEasy 中处理多个编组配置文件?
【发布时间】:2013-09-12 14:56:09
【问题描述】:

我使用 RestEasy 开发了一个 RestFul Web 服务应用程序,目前正在使用 Resteasy 2.3.5 和 JBoss 4.3.2GA。 我想将选定的属性发布给我的网络服务的选定用户。

例如这里是一个对象 User : 用户:{id=123, name=Jack, password=MyNameIsJack}

当具有 lambda 配置文件的 Web 服务用户请求 Jack 我的应用程序应返回的对象时: {id=123, name=杰克}

当具有 admin 个人资料的 Web 服务用户请求 Jack 我的应用程序应返回的对象时: {id=123, name=Jack, password=MyNameIsJack}

有没有办法使用 RestEasy 框架做到这一点?

谢谢

【问题讨论】:

  • 我们在 EclipseLink JAXB (MOXy) 中有一个名为 Object Graphs 的功能,您可以将其与 RestEASY 集成以获得所需的行为:blog.bdoughan.com/2013/03/…
  • 嗨 Blaise,这似乎是一个可以接受的解决方案。但是,我真的不明白 EclipseLink 应该如何与 RestEasy lib 集成。像 JAXBContext 这样的一些类是重复的。当我尝试检索 JAXBContext,然后将其与 EclipseLink 中的 JAXBHelper 一起使用时,我得到以下异常:code提供的 JAXBContext [class com.sun.xml.bind.v2.runtime.JAXBContextImpl] 不是 EclipseLink JAXBContext,因此无法转换code那我该怎么用呢?
  • @BlaiseDoughan 我找到了另一种使用 MOXy 的方法。你怎么看?

标签: web-services rest jaxb marshalling resteasy


【解决方案1】:

我尝试了@Blaise Doughan 给出的解决方案,但 ObjectGraph 覆盖了我班级上现有的基于注释的映射。

我想要的是扩展这个映射。

所以我选择通过使用 xml 映射扩展我的注释映射来做到这一点。 根据 Blaise 的教程,您可以使用 MOXy 执行此操作: extending-jaxb-representing-annotations

不要忘记编写一个 jaxb.properties 文件来指定要使用的 JAXB 实现:specifying-eclipselink-moxy-as-your-JAXB-implementation

它对我来说很好用。 谢谢布莱斯!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多