我已经与Axis和Saaj一起工作了几年,然后我改用spring-ws,我更喜欢,因为它更面向xml。
然后由于saaj的严重性能问题,我将所有项目都切换为公理。
后来我又遇到了一些问题,尤其是与名称空间处理(AXIOM-114和SWS-502)有关的问题,无论如何我一直在使用spring-ws和axiom两年。
由于我不完全满意,因此我实际上正在寻找其他任何库。有什么建议?
我知道google是我最好的朋友,但这是一件微妙的事情,所以我想知道您的经历。实际上,在Java中处理肥皂消息的最佳库是什么?
我可以根据自己的需要编写自己的库,但是我认为这并不是一件容易的事,而且我不喜欢重新发明轮子。我只是想依靠一个可以正确处理格式正确的xml,命名空间声明,多层xml嵌套等等的库。
最佳答案
我实际上正在寻找其他
库。有什么建议?
好吧,SAAJ仍然是SUN处理SOAP(带有附件)的规范。
参考实现使用DOM,因此,如果交换大消息,则会看到内存问题。
除axis和spring(您已经使用过)之外,其他支持基于soap的Web服务的框架是cxf。
Axis使用公理进行xml处理,并拥有SAAJ的实现,我认为它不是基于DOM的。因此,对于大型消息,期望有更好的内存使用率。
默认情况下,CXF使用内置的java saaj实现,但也可以支持axis2-saaj
CXF FAQ
最后但并非最不重要的是JAX-WS(也依赖于SAAJ)。
CXF和JAX-WS都允许您直接在xml级别上工作。
这几乎是Java中肥皂网络服务的最流行框架(如果我忘记了一些东西,希望有人会通知我)。
什么是最好的库来处理
用Java编写肥皂消息?
很难说,因为这是一个广泛的问题。
一般来说,最受欢迎的框架是Axis2和CXF(这是我个人的理解)。
恕我直言,所有库都有一个问题,即它们对输入(即名称空间)太“敏感”。
在开发人员需要更轻松的解析的情况下,这并不容易实现。