Answers:
请记住,我完全有偏见(CXF的PMC主席),但是我的想法是:
从严格的“项目可以做我需要做的事情”的角度来看,两者是相当等效的。CXF可以执行某些“边缘情况”,而Axis 2无法做到,反之亦然。但是对于90%的用例,两者都可以正常工作。
因此,除了“复选框功能”之外,还涉及其他方面。
API-CXF推出“基于标准”的API(符合JAX-WS),而Axis2则更倾向于专有的东西。也就是说,即使CXF可能也需要使用专有API来配置/控制JAX-WS规范之外的各种内容。对于REST,CXF还使用标准API(符合JAX-RS)而不是专有事物。(是的,我知道Axis2中的JAX-WS运行时,但是工具和文档以及所有内容都不以它为目标)
社区方面和可支持性-CXF以响应问题并向用户提供“修订包”而感到自豪。CXF针对2.0.x(两年前发布,大约每2个月发布一次)制作了12个修订包,针对2.1.x制作了6个修订包,现在针对2.2.x制作了3个修订包。Axis2并不真正“支持”较旧的版本。除非遇到“关键”问题,否则您可能需要等到下一个大版本(它们平均大约每9-10个月左右)才能获得修复。(尽管使用这两种方法,您都可以获取源代码并自己打补丁/修复。一定喜欢开源。)
集成-如果您使用Spring,则CXF具有更好的Spring集成。所有配置等都是通过Spring完成的。同样,人们倾向于将CXF视为其他应用程序中更“可嵌入的”(我从未从这个角度看过Axis2)。不知道这样的事情对您是否重要。
性能-它们都表现出色。我认为Axis2专有的ADB数据绑定比CXF快一点,但是如果您使用JAXB(又是基于标准的API),则CXF快一点。当使用诸如WS-Security之类的更复杂的方案时,两者的基础安全性“引擎”(WSS4J)相同,因此性能完全可比。
不知道这是否能回答所有问题。希望它至少能提供一些信息。
:-)
担
另一件事是社区的活动。比较axis和cxf(2013)的邮件列表流量。
因此,如果这是使用情况的任何指标,则axis的使用量远少于cxf。
在ohloh比较CXF和Axis统计信息。CXF具有很高的活动性,而Axis总体具有较低的活动性。
这是CXF(红色)和Axis1(绿色),Axis2(蓝色)随时间推移的提交次数的图表。
CXF的优点:
Axis2的优点:
综上所述:从上述优势项目中,我们得出了一个很好的思路,可以比较Axis2和CXF的优点。它们在特定领域中都有各自不同的发达领域,CXF具有很好的可配置性,可集成性,并且具有受支持的丰富工具包,并且与Java社区非常接近,Axis2采用了使它在许多方面都类似于微型应用服务器的方法。它涉及多种编程语言。因为Axis2具有独立性,所以它适合于独立于其他应用程序并提供多种功能的独立Web服务。
作为开发人员,我们需要根据自己的观点选择合适的框架,无论选择哪种框架,您都将受益于活跃而稳定的开源社区。在性能方面,我进行了基于相同功能并在同一Web容器中配置的测试,结果表明CXF的性能比Axis2好一点,单个案例可能无法准确反映其功能和性能。
在一些研究文章中,它揭示了Axis2专有的ADB数据绑定比CXF快一点,因为它没有附加功能(WS-Security)。Apache AXIS2是相对最常用的框架,但相对于其他Web服务框架,Apache CXF在考虑易于开发,当前行业趋势,性能,总体记分卡和其他功能方面得分较高(除非明确需要Web Services Orchestration支持,在此不需要)