首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过HTTP发送遗留JavaBeans

通过HTTP发送遗留JavaBeans
EN

Stack Overflow用户
提问于 2014-08-28 15:55:44
回答 1查看 61关注 0票数 1

我们在包含嵌入式Jetty服务器的应用程序中运行了遗留系统的组件。这个遗留系统有几个JavaBeans (DTO),它们包含我们的HTTP客户端所需的信息。这些bean没有任何JSON/XML序列化注释,我们不想对遗留系统代码进行任何修改。我们也不希望我们的客户端依赖于旧的遗留系统或它的JavaBeans。

最后,这些bean之间有许多复杂的引用,以及彼此的集合。一些bean的对象图具有循环和非平凡的继承,因此简单的JSON或XML序列化会导致循环堆栈溢出错误。

我想找个好办法来解决这个问题。

一个想法是在XSD中描述所有这些bean,并使用它生成具有所需JAXB注释的新类,用于序列化为JSON/XML。我们将从遗留系统中的对象结构实例中手工组装带有这些新bean的对象结构,然后能够通过HTTP将其发送到仅依赖于新类的客户端。但这似乎是很多工作。

另一个想法是对每个遗留bean进行子类,以添加所需的XML/ JAXB注释。这可能比编写XSD更容易吗??但是,我们仍然需要从遗留bean的对象图中组装bean实例的新对象图。并且它将对遗留JavaBeans的客户端具有运行时依赖关系。

我搜索了一些关于从现有Java类自动生成XSD的内容。看起来这方面有一些工具,但是它需要我们修改XSD,所以当生成新的类时,它将具有所需的注释。

有更好的办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-28 17:27:38

JAXB不需要注释。它可以在外部配置。

考虑:http://blog.bdoughan.com/2010/12/extending-jaxb-representing-annotations.html

此外,我发现在许多情况下,默认的(即没有注释)工作得很好。因此,您可能不会有一个很大的负担引导带您的代码。

如果您使用的是一个常见的“根”对象,那么一个XmlRootElement启动整个引擎,即使这也不是完全必需的。

您需要小心bean中的循环图,但是使用JAXB也可以对这些图进行管理。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25553113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档