CXF 和 Spring-WS 哪个框架更好?[关闭]
-
08-07-2019 - |
题
我正在研究/比较 CXF 和 Spring-WS 的 Web 服务?我需要同时充当 WS 的提供者和消费者。简而言之,我被告知 Spring-WS 更具可配置性,但 CXF 更容易启动和运行。这个问题是主观的,但有助于指导我的研究。
- 您对这两个框架有什么经验?
- 您在使用这两个框架时遇到过任何陷阱吗?
- 您是否发现其中任何一个提供了另一个可能不提供的有用功能?
解决方案
我认为Spring-WS最大的区别是 仅有的 “合同第一”,而我相信 CXF 通常是“合同最后”。
http://static.springsource.org/spring-ws/sites/1.5/reference/html/why-contract-first.html
Contract-last 从 Java 代码开始,因此通常更容易上手。
然而,它创建的 WSDL 往往更加脆弱。
其他提示
关于 Apache CXF:
- CXF 支持多种标准,包括 SOAP、WSI 基本配置文件、WSDL、WS-Addressing、WS-Policy、WS-ReliableMessaging、WS-Security、WS-SecurityPolicy 和 WS-SecureConversation。
- Apache CXF 提供契约最后(从 Java 开始)和契约优先(从 WSDL 开始)方法。
- Apache CXF 实现 JAX-WS 和 JAX-RS。
关于 Spring WS:
- Spring WS“仅”提供契约优先,从 XSD 架构开始。
- Spring WS 支持 SOAP、WS-Security、WS-Addressing。
所以,最后,我将 Spring WS 视为 最小的 Web 服务框架,但考虑到(在我看来)它没有比 Apache CXF(它与 Spring 集成得非常好)有任何优势。在两者之间,我会选择 Apache CXF。
CXF 不会以任何方式阻止您从合同 (WSDL) 开始。我使用这两个产品来构建 Web 服务。
在CXF中,我使用了Maven和Maven插件,调用 进口 目标是生成 SEI(接口),然后我将其实现。实现包含实际服务逻辑的接口并配置我的 bean 实现之后 beans.xml, ,我然后让Maven将其打包成war文件进行部署。整个练习再简单不过了。
我认为 Spring-WS 提供的任何优点都无法弥补 JAX-WS 的缺点。CXF 已经允许您使用 Spring 来连接您的 bean,并且还具有 JAX-WS 的完整实现。
我们有以下经验 CXF 它的前身 X火 我可以推荐它作为可靠、快速(WS 创建和执行)和可靠的框架。
关于 CXF 可能遇到的问题,请参阅我的帖子 https://stackoverflow.com/questions/289977/recommended-framework-for-java-web-services#290205我同意 工具包, ,框架之间最大的区别是意识形态上的:第一个代码是什么(即接口)或合同(即wsdl)。请参阅此处的一些详细信息:
阿帕奇CXF:
主要优点:
❶ 现在使用最广泛的 Web 服务标准;对 AXIS2 的改进,现已逐渐被 Apache CXF 取代
❷ 直观且易于使用(与 AXIS2 相比,需要的编码更少)
❸ 前端(例如 JAX-WS)与核心代码完全分离
❹ 完全兼容 JAX-WS、JAX-RS 等
❺ 在所有可用框架中以最小的计算开销实现最佳性能
❻ 支持多种前端模型
❼ 支持 JAX-WS 和 JAX-RS(用于 Restful 服务)
❽ 支持 JBI 和 SDO(AXIS2 不支持)
❾ 兼容Spring框架
主要关注点:
❶ 尚不支持 Orchestration 和 WS Transactions
❷ 尚不支持 WSDL 2.0
春季WS:
主要优点:
❶ 在支持合同优先 Web 服务开发方法方面表现最佳
❷ 通过框架约束强制执行标准和最佳实践(没有办法摆脱它,因此也有限制)
❸ 支持 Spring 注解以及 JAX-WS
❹ 从开发人员的角度来看最少的代码
❺ 与 Spring 技术堆栈(也与 Spring MVC 类似的架构堆栈)最一致,包括 Spring Security
主要关注点:
❶ 支持最少数量的 WS-* 规范(不完全符合 JAX-WS)
❷ Spring 将自己作为标准提供,因此其他兼容 Java 的框架支持更好的标准支持
❸ 仅支持契约优先的Web服务开发模型
来源 : https://dzone.com/articles/apache-cxf-vs-apache-axis-vs
在此比较中要考虑的另一个选项是 阐明.
特别是如果您想先从 Java 开始的话。
请查看相关帖子: 使用 Spring-WS 构建 Web 服务