【问题标题】:JAX-RS change @XmlRootElement.name on runtimeJAX-RS 在运行时更改 @XmlRootElement.name
【发布时间】:2017-11-29 19:01:33
【问题描述】:

我有一个无法修改的 DTO,但在新端点上使用它是必需的。问题是必须更改 RootElement 名称,有没有办法在特定端点上做到这一点?

@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlRootElement(name = "wccevent")
public class SimpleWCCEvent {
..
}

在我的新端点上,我需要将根名称从 wccevent 更改为 apiresponse,这可能吗?

类似

@GET
...
@XmlFeatures({overrideRootName = "apiresponse"})
public Response newEndpoint(){
...
}

【问题讨论】:

    标签: java jax-rs jersey-2.0 jaxb2


    【解决方案1】:

    由于 API 的更广泛变化,是否需要对 DTO 进行更改?也许您可能需要考虑如何处理更大架构中的 API 更改。

    其他人看看这个answer,它建议像这样覆盖根元素名称:

    String xml mapper.writer().withRootName("movies").writeValueAsString(movies);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      相关资源
      最近更新 更多