我正在研究/比较 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 服务

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top