Difference between Apache CXF and Axis

在Apache Axis上使用Apache CXF有什么优势?反之亦然?


Keep in mind, I'm completely biased (PMC Chair of CXF), but my thoughts:

From a strictly "can the project do what I need it to do" perspective, both are pretty equivalent. There some "edge case" things that CXF can do that Axis 2 cannot and vice versa. But for 90% of the use cases, either will work fine.

Thus, it comes down to a bunch of other things other than "check box features".

  • API - CXF pushes "standards based" API's (JAX-WS compliant) whereas Axis2 general goes toward proprietary things. That said, even CXF may require uses of proprietary API's to configure/control various things outside the JAX-WS spec. For REST, CXF also uses standard API's (JAX-RS compliant) instead of proprietary things. (Yes, I'm aware of the JAX-WS runtime in Axis2, but the tooling and docs and everything doesn't target it)

  • Community aspects and supportability - CXF prides itself on responding to issues and making "fixpacks" available to users. CXF did 12 fixpacks for 2.0.x (released two years ago, so about every 2 months), 6 fixpacks to 2.1.x, and now 3 for 2.2.x. Axis2 doesn't really "support" older versions. Unless a "critical" issue is hit, you may need to wait till the next big release (they average about every 9-10 months or so) to get fixes. (although, with either, you can grab the source code and patch/fix yourself. Gotta love open source.)

  • Integration - CXF has much better Spring integration if you use Spring. All the configuration and such is done through Spring. Also, people tend to consider CXF as more "embeddable" (I've never looked at Axis2 from this perspective) into other applications. Not sure if things like that matter to you.

  • Performance - they both perform very well. I think Axis2's proprietary ADB databinding is a bit faster than CXF, but if you use JAXB (standards based API's again), CXF is a bit faster. When using more complex scenarios like WS-Security, the underlying security "engine" (WSS4J) is the same for both so the performance is completely comparable.

  • Not sure if that answers the question at all. Hope it at least provides some information.

    :-)

    Dan


  • Axis2 : More ubiquitous on the marketplace, supports more bindings, supports other languages like C/C++.
  • CXF : Much easier to use, more Spring friendly, faster got support for some WS-* extensions.

  • One more thing is the activity of the community. Compare the mailing list traffic for axis and cxf (2013).

  • Axis user 50-100 mails per month
  • CXF user 400-500 mails per month
  • So if this is any indicator of usage then axis is by far less used than cxf.

    Compare CXF and Axis statistics at ohloh. CXF has very high activity while Axis has low activity overall.

    This is the chart for the number of commits over time for CXF (red) and Axis1 (green) Axis2 (blue). 在这里输入图像描述

    链接地址: http://www.djcxy.com/p/59842.html

    上一篇: 在R中旋转轴标签

    下一篇: Apache CXF和Axis的区别