javax.xml.soap和apache cxf哪个更好?

3
本周我需要调查一个使用SOAP包javax.xml.soap.*的Java WebService项目。
我以前没有使用过这个,但是使用Apache CXF库创建SOAP webservice。
我对javax.xml.soap.*有一个问题。
从性能角度来看,它比CXF更好吗?
在编码方面,我认为CXF非常棒,因为根本不需要担心SOAP API,只需使用注释就可以在几分钟内创建服务。
此外,MessageFactory和SOAPConnection是否线程安全?我问这个是为了避免每次创建这些对象。如果创建不会带来额外开销,那么就没有问题,但如果有,则只想创建一次。我在javadoc中找不到关于线程安全的信息。
2个回答

6

javax.xml.soap是一个低级API,CXF是该API的实现之一,也是众多实现之一。所有的实现都使用javax.xml.soap。

更有意义的比较是JAX-WS实现之间的比较,例如JAX-WS-RI和CXF。


5
实际上,只有在必要时(存在JAX-WS处理程序、提供程序类型等)CXF才会使用javax.xml.soap(SAAJ)。
通常情况下,使用SAAJ比CXF更慢,因为它不允许流式传输,而CXF通常会这样做。使用SAAJ时,整个SOAP消息作为DOM存储在内存中。虽然如此,如果您确实希望/需要将数据作为DOM处理,那么速度可能会稍快,因为需要的处理较少。

事情改变了:SAAJ >= 1.3.4 可以处理此问题(请参阅 Creating SOAPMessages with Very Large XML Payload / Handling Very Large MIME Messages)。 - dma_k

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接