81

我正在研究/比较 Web 服务的 CXF 和 Spring-WS?我需要同时作为 WS 的提供者和消费者。简而言之,有人告诉我 Spring-WS 更具可配置性,但 CXF 更容易启动和运行。这个问题是主观的,但会帮助指导我的研究。

  • 您对这些框架中的任何一个都有什么经验?
  • 你有没有遇到过任何一个框架的陷阱?
  • 您是否发现任何一方提供而另一方未提供的有用功能?
4

6 回答 6

80

关于 Apache CXF:

  • CXF 支持多种标准,包括 SOAP、WSI Basic Profile、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 Schema 开始提供“仅”合同优先。
  • Spring WS 支持 SOAP、WS-Security、WS-Addressing。

因此,最后,我将 Spring WS 视为一个最小的Web 服务框架,但认为它(在我看来)与 Apache CXF(与 Spring 集成得非常好)没有任何优势。在两者之间,我会选择 Apache CXF。

于 2010-07-03T17:04:14.213 回答
34

CXF 不会以任何方式阻止您从合同 (WSDL) 开始。我使用这两种产品来构建 Web 服务。

在 CXF 中,我使用 Maven 和 Maven 插件,调用wsimport目标来生成我随后实现的 SEI(接口)。在实现了包含实际服务逻辑的接口并配置了我的 bean 实现beans.xml之后,我让 Maven 将其打包成一个 war 文件进行部署。整个练习再简单不过了。

我不认为 Spring-WS 提供的任何优势都超过了 JAX-WS 的不足。CXF 已经允许您使用 Spring 连接您的 bean,并且还具有 JAX-WS 的完整实现。

于 2008-12-04T16:48:30.203 回答
21

我认为最大的区别是 Spring-WS只是“合同优先”,而我相信 CXF 通常是“合同最后”。

http://static.springsource.org/spring-ws/sites/1.5/reference/html/why-contract-first.html

Contract-last 从 Java 代码开始,因此通常更容易上手。

但是,它创建的 WSDL 往往更脆弱。

于 2008-11-17T21:45:29.717 回答
12

我们有使用CXF的经验,它是XFire的前身,我可以推荐它作为可靠、快速(WS 创建和执行)和可靠的框架。

关于您可以使用 CXF 遇到的问题,请参阅我的帖子https://stackoverflow.com/questions/289977/recommended-framework-for-java-web-services#290205 我同意工具包,框架之间的最大区别是意识形态上:什么是第一个代码(即接口)或合约(即wsdl)。在此处查看一些详细信息:

于 2008-11-18T06:10:30.650 回答
0

Another option to consider in this comparison is Enunciate.

Especially if you like to start with Java first.

于 2010-11-05T13:10:22.180 回答
-1

请查看相关帖子:使用 Spring-WS 构建 Web 服务

于 2010-09-30T04:17:11.707 回答