gpt4 book ai didi

web-services - 在 CXF 中,为什么要使用除 JAXB 之外的任何其他绑定(bind)? (MTOM 附件、Aegis、XMLBeans...)

转载 作者:行者123 更新时间:2023-12-04 12:14:14 28 4
gpt4 key购买 nike

我一直在使用 Apache CXF,尤其是它支持的各种数据绑定(bind):JAXB(默认)、MTOM、Aegis 和 XMLBeans。由于所有这些都得到支持,我想每个都有其优点。我想出了这些:

  • 显然,在涉及大型附件的情况下,MTOM 是首选。
  • JAXB 依赖于注解,因此在类的修改受到限制时不太适合。
  • 宙斯盾没有wsdl2java工具,因此它不太适合“契约优先”开发,即从 WSDL 开始并从中生成 Java 代码。
  • Aegis 似乎通过 Class.aegis.xml 文件中的声明性语法对 Java 类和 XML 之间的映射提供了更多的控制。另一方面,我无法设计出任何 JAXB 无法发挥作用的场景。

  • 我发现这个问题并列 JAXB 和 XMLBeans,但它没有给出全面的概述:

    JAXB vs Apache XMLBeans

    除了这些幼稚的先验考虑之外,您是否有任何血腥经验可以支持使用除 JAXB 之外的任何其他绑定(bind)?我是从 CXF 的角度提问,但如果想到任何其他选项(例如 Castor),请不要犹豫,详细说明。

    最佳答案

    如果从头开始创建 WSDL 优先的 Web 服务,那么我肯定会建议在 95% 的时间(甚至更高)中坚持使用 JAXB。它绝对是 CXF 中经过最佳测试的数据绑定(bind),并且性能非常好。

    其他数据绑定(bind)通常用于以下两种情况之一:

    1) Java 第一个用例,您已经用 Java 编写了一些内容,您希望将其公开为 Web 服务,几乎不需要修改代码。 Aegis 在这里有它的优势,因为它被设计为能够处理比 JAXB 更广泛的事情。但是,如果您可以修改代码,添加 JAXB 注释通常并不难。如果你有大部分正常的“ bean ”,那没什么大不了的。

    2) 使用特定映射的现有应用程序。如果您有期望 XMLBeans bean 的现有应用程序(如果使用 CXF 的 2.3-SNAPSHOT,则为 SDO bean,或者如果遵循 GSoC 项目,则为 JiBX bean),那么使用其他数据绑定(bind)可以通过删除从 JAXB 到这些对象模型的任何所需映射来提供帮助.

    希望能有所帮助。

    关于web-services - 在 CXF 中,为什么要使用除 JAXB 之外的任何其他绑定(bind)? (MTOM 附件、Aegis、XMLBeans...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3636051/

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