【问题标题】:Which framework is better CXF or Spring-WS? [closed]CXF 和 Spring-WS 哪个框架更好? [关闭]
【发布时间】:2008-11-17 21:37:40
【问题描述】:

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

  • 您对这些框架有什么经验?
  • 您是否在使用这两种框架时遇到过任何陷阱?
  • 您是否发现任何一方提供而另一方未提供的有用功能?

【问题讨论】:

    标签: java web-services cxf spring-ws


    【解决方案1】:

    关于 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 模式开始。
    • Spring WS 支持 SOAP、WS-Security、WS-Addressing。

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

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

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

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

        【讨论】:

        • JAX-WS 支持契约优先的方法,我相信这就是人们认真开发的方式。所以这绝对不是区分 JAX-WS 堆栈和 Spring WS 的好方法。实际上,Spring WS 并不能与 JAX-WS 相比,Spring WS 只是一个简约的 WS 堆栈。
        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          在此比较中要考虑的另一个选项是Enunciate

          特别是如果您想先从 Java 开始。

          【讨论】:

            【解决方案6】:

            请查看相关帖子:Building a web service with Spring-WS

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-06-04
              • 1970-01-01
              • 2011-03-06
              • 2011-02-14
              • 1970-01-01
              • 2017-06-16
              相关资源
              最近更新 更多