gpt4 book ai didi

java - 将 @XmlRootElement 添加到每个 JAXB bean 是否有任何问题?

转载 作者:行者123 更新时间:2023-11-30 04:04:43 24 4
gpt4 key购买 nike

在我当前的项目中,我们使用 JAXB beans 进行 Hibernate 并通过 [REST API][1] 以 XML 和 JSON 格式发送数据。我们希望能够在用作 REST VO 的 Result 对象中任意包含任何 JAXB bean(例如,作为 <xsd:any> 元素),而无需为可能包含的每种不同类型提供单独的编码方法。似乎最简单的方法是在每个 bean 上使用 @XmlRootElement 注释。

  1. 这是“无缝”编码的好方法吗?
  2. 这样做会产生后果吗?

我们使用 Java 1.6、用于 jaxb 的 EclipseLink/MOXy、用于 REST 的 Jersey 1.x 以及 Tomcat 应用服务器。我们的 bean 是通过 xjc 从 XML 模式文件生成的,并使用 annox在生成时添加注释。

[1]:在理想的情况下,数据对象将与域对象分开,但这是一个小团队的小项目,因此数据库和 api 之间的隔离是没有必要的

最佳答案

Are there any concerns with adding @XmlRootElement to every JAXB bean?

没有。

<小时/>

We want to be able to arbitrarily include any JAXB bean inside a Result

通用Result带有 @XmlAnyElement(lax=true) 注释的字段/属性的对象是创建通用消息的好方法,其中任意负载对象用 @XmlRootElement 注释。可以使用。

<小时/>

we use as a REST VO (e.g. as an element) without having a separate marshalling method for each different type that could be included.

我担心的是,您返回的数据不会像您想要的那样。 SOAP 具有信封消息格式,其中数据位于主体中。一般REST没有这个。当我访问 RESTful 端点时,我通常不期望某种封装数据的信封。

关于java - 将 @XmlRootElement 添加到每个 JAXB bean 是否有任何问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21032441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com