【问题标题】:Which SOAP XML object serialization library for Java would you recommend?您会推荐哪个用于 Java 的 SOAP XML 对象序列化库?
【发布时间】:2009-04-10 08:22:05
【问题描述】:

对于与其他平台/语言(.NET、Delphi)的Java 对象交换,您会推荐哪个 Java SOAP XML 对象序列化库?

通信场景可能如下所示:

  • Java 对象编写器 -> SOAP XML 文本 -> .NET 或 Delphi 对象读取器
  • .NET 或 Delphi 对象编写器 -> SOAP XML 文本 -> Java 对象读取器

我知道有 XStream XML 序列化库和 JSON 作为替代解决方案,但是由于 Delphi 和 .Net 具有对 SOAP XML 序列化对象的内置支持,这将提供一种“标准化”方式,支持嵌套等高级功能对象、数组等。

编辑: 同时,我发现了 JAXB - (https://jaxb.dev.java.net/)、JAXMeJiBX - Binding XML to Java Code(http://jibx.sourceforge.net/)。但它们默认不生成 SOAP 序列化 XML。

一个可能的解决方案是一个 Web 服务库,它能够在没有 HTTP 服务器的情况下运行,并为 SOAP XML 内容提供一个简单的文件接口(不是一个完整的请求,只是一个序列化的对象)。 Axis 2CXF 看起来很有趣。

【问题讨论】:

标签: java .net delphi xml-serialization soap-serialization


【解决方案1】:

与我使用过的其他库(JAX-RPC、Axis 1 和 2,但不是 XFire)相比,我更喜欢 JAX-WS(带有 JAXB 2.1 数据绑定)。 JAXB 2 数据绑定使用泛型,这使得 maxoccurs > 1 的属性的映射令人愉快。JAX-WS 本身有很好的文档记录,并提供了相当好的 API。在某些情况下,方法和参数注释可能会有点失控——注释形式的 XML 地狱。它通常不会那么糟糕。

JAX-WS 堆栈的一个不错的方面是 Metro 项目,它是 Sun 与 Microsoft 共同开发的,并且与支持 .NET 3.0 的 Web 服务很好地互操作,甚至以一种可行的方式实现 MTOM。

【讨论】:

  • +1 用于 JAX-WS 和 JAXB。有时您必须真正涉足注释,但最终我对结果感到非常满意
【解决方案2】:

我会推荐CXF。它是一个非常好的服务堆栈,包括 JAXB 数据绑定和 JAX-WS 支持。如果您需要更高级的消息转换和路由,您可能需要查看像 Mule 这样的开源集成平台,其中包括 CXF(也支持 Axis 和 XStream)。它是轻量级的,可以在没有应用服务器的情况下嵌入或运行。

【讨论】:

  • CXF 也是我目前最喜欢的,新的但功能非常丰富
  • 非常好用,你可以只专注于你的java代码,让CXF处理web service twaddle。
【解决方案3】:

除了可以正常工作的 Axis2 之外,Sun 的 JAX-WS(版本 2)和 Apache CXF(nee XFire)也值得一试,Soap 是你的事。 CXF 可能是 3 个中最成熟的,所以这是我最喜欢的,但所有 3 个都很好。

【讨论】:

    【解决方案4】:

    这方面的标准库可能是 Apache Axis1。我建议使用轴 2 而不是轴 1.4- 虽然效果很好。

    请记住,所有 SOAP 扩展都使互操作性梦想成为了……梦想。

    【讨论】:

      【解决方案5】:

      我想你已经回答了你自己的问题。

      XStream(以 JSON 格式输出)是一个不错的干净解决方案。如果您为类型加上别名,您将获得干净的输出格式。之后,您使用哪个 SOAP 堆栈并不重要,只要它很好并且可以与 Delphi/.NET 互操作即可。

      【讨论】:

      • 我建议不要这样做。 XStream 是一个很棒的库,用于将 POJO 序列化为 xml,但如果想要使用 SOAP 则不是(当然,JSON 格式也是如此)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多