【问题标题】:Any news about soap handling in Java?有关于 Java 中肥皂处理的消息吗?
【发布时间】:2011-07-17 17:26:57
【问题描述】:

我已经与 Axis 和 Saaj 合作了几年,然后我切换到 spring-ws,我更喜欢它,因为它更面向 xml。 然后,由于 saaj 存在严重的性能问题,我将所有项目都切换到了 axiom。 后来我又遇到了一些问题,尤其是与命名空间处理有关的问题(AXIOM-114SWS-502),反正我已经使用 spring-ws 和 axiom 两年了。

由于我并不完全满意,我实际上正在寻找任何其他库。有什么建议吗?

我知道 google 是我最好的朋友,但这是一个微妙的问题,所以我想知道你的经验。实际上,在 Java 中处理肥皂消息的最佳库是什么?

我可以根据自己的需要编写自己的库,但我认为这不太容易,我不喜欢重新发明轮子。我只想依赖一个能够正确处理格式良好的 xml、命名空间声明、多层嵌套 xml 等的库。

【问题讨论】:

  • SAAJ 仍然是可憎的。如果你2年前不喜欢它,你现在肯定不会喜欢它。 Spring-WS 和 Axiom 是一个更令人愉快的选择。
  • cxf 怎么样?还是 HTTP + xml 解析器?
  • 感谢您的建议。 @vtd-xml-author HTTP + xml 解析器是一种解决方案,但我不想编写自己的库。这不太容易,我希望有一些库比我的做得更好。不过,谢谢,我会考虑的。

标签: java xml soap


【解决方案1】:

我实际上正在寻找其他的 图书馆。有什么建议吗?

嗯,SAAJ 仍然是 SUN 处理 SOAP(带附件)的规范。
参考实现使用 DOM,因此如果您交换大消息,您会看到内存问题。
除了axis和spring(您已经使用过)之外,其他支持基于soap的Web服务的框架是cxf。
Axis 使用 axiom 进行 xml 处理,并且有一个 SAAJ 的实现,我认为它不是基于 DOM 的。因此,预计大消息的内存使用会更好。
CXF默认使用内置的java saaj实现,但也可以支持axis2-saaj
CXF FAQ

最后但并非最不重要的是 JAX-WS(也依赖于 SAAJ)。
CXF 和 JAX-WS 都允许您直接在 xml 级别上工作。
这几乎是java中最流行的soap Web服务框架(如果我忘记了什么,我希望有人进来告知)。

什么是最好的库处理 Java中的肥皂消息?

很难说,因为这是一个相当广泛的问题。
一般来说,最流行的框架是Axis2和CXF(这是我个人的理解)。
恕我直言,所有库的问题是它们对输入(即命名空间等)过于“敏感”。
在开发人员需要更轻松的解析的情况下,这并不容易。

【讨论】:

    【解决方案2】:

    JAX-WS(和 reference implementation,又名 Metro)使用数据绑定和存根生成来进行 SOAP 调用,类似于 .NET 通常的做法。

    JAX-WS 可能是推荐的方法,除非您有使数据绑定不可行的特定需求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多