java - Web服务输出多种格式

标签 java xml web-services rest xsd

首先,让我先介绍一些背景知识: 我有一个 Web 服务,它接受 XML 作为输入并以 XML 输出。输出有 2 种不同的可能模式(还有另外两种)。每个请求都有一个组列表,可以从中轮询数据。轮询数据库,然后从每个组中生成正确格式的 XML;这些组被编译在一起并输出 XML。

基本上,每组数据都有一个类,用于处理轮询数据库并输出 XML 模式输出。

由于输出格式多种,代码本身非常臃肿且难以维护。因此,我正在寻找一种设计模式,以便更轻松地添加新的输出格式。我探索了使用 XSLT 在格式之间进行转换的选项,但它们差异很大,因此我认为此选项不可行。

tl;dr:对于 Restful XML Web 服务来说,基于单个数据库中的数据生成不同格式的 XML 的有效设计模式是什么?

如果我可以提供更多信息,请告诉我!

最佳答案

基本上,每组数据都有一个类,用于处理轮询数据库并输出 XML 模式输出。 --> 这个类可以分解为只轮询数据并将输出作为 java bean 或其他东西返回吗?如果是,我会更改此类以仅处理数据检索。 创建一个 Controller 来决定输出格式。使用此 Controller 周围的命令模式,以便您将来可以轻松添加更多输出格式。 为 XML 输出部分创建一个不同的组件。使用工厂模式并将输出格式的标识符传递给它。如果输出格式非常复杂,可以考虑使用JAXB。否则,重用已存在的类中存在的任何代码。

请告诉我这是否有帮助。

关于java - Web服务输出多种格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6904281/

相关文章:

java - 使用 RestTemplate 的 spring webservices 的超时配置

asp.net - 保护 Web 服务

sql - 使用 XQUERY/Modify 将我的一段 XML 替换为来自 varchar 字段的值

java - 如何使用Java代码将文件夹(包括子目录和文件) move 到新文件夹中

java - Redhawk 因 Java 错误而崩溃 - 被信号 6、SIGABRT 杀死

java - 我应该避免在 Spring util 包中使用类吗?

xml - 将 XML 文档元素与 XSLT 路径和 xsl :mode on-no-match ="fail" 相匹配

c# - 使用数据集的 xml 到 TreeView

java - JSONException : Value <? java.lang.String 类型的 xml 无法转换为 JSONObject

java - 为什么AJAX调用Servlet(异步)会被执行多次?