哪个框架比较好CXF或Spring-WS?

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

  • 你对这两个框架有什么经验?
  • 你有没有碰到任何框架的陷阱?
  • 你有没有发现任何有用的function,可能不是由其他提供的?

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

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

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

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

关于Apache CXF:

  • CXF支持多种标准,包括SOAP,WSI Basic Profile,WSDL,WS-Addressing,WS-Policy,WS-ReliableMessaging,WS-Security,WS-SecurityPolicy和WS-SecureConversation。
  • Apache CXF提供了contract-last(从Java开始)和Contract-first(从WSDL开始)两种方法。
  • Apache CXF实现了JAX-WS和JAX-RS。

关于WS:

  • Spring WS从XSD Schema开始提供“only”contract-first。
  • Spring WS支持SOAP,WS-Security和WS-Addressing。

所以,最后,我将Spring WS看作是一个最小的 Web服务框架,但考虑到它并不(在我看来)比Apache CXF(与Spring极其集成)有任何优势。 在两者之间,我会selectApache CXF。

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

在CXF中,我使用了Maven和Maven插件,调用wsimport的目标来生成SEI(接口),然后实现。 在实现接口来包含实际的服务逻辑和configuration我的bean实现beans.xml之后 ,我让Maven把它打包成一个war文件来部署。 整个演习不是一帆风顺的。

我不认为Spring-WS提供了超过缺lessJAX-WS的任何优势。 CXF已经可以让你使用Spring来连接你的bean,并且也完全实现了JAX-WS。

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

关于CXF可以遇到的问题,请参阅我的posthttps://stackoverflow.com/questions/289977/recommended-framework-for-java-web-services#290205我同意工具箱 ,框架之间的最大区别是在思想上:第一个代码(即接口)或合同(即wsdl)是什么。 在这里看到一些细节:

  • Spring Web Services和Java的最佳实践
  • Spring WS教程
  • Spring Web Services 1.5中的新function

Apache CXF:

主要优点:

❶现在使用最广泛的Web服务标准; AXIS2正在逐渐被Apache CXF所取代

❷直观且易于使用(与AXIS2相比,所需编码更less)

❸清除核心代码中前端的分离,如JAX-WS

❹完全符合JAX-WS,JAX-RS等

all所有可用框架的最佳性能和最小的计算开销

❻支持多种前端模型

❼支持JAX-WS和JAX-RS(用于Restful Services)

❽支持JBI和SDO(AXIS2不支持)

❾与Spring框架兼容

关键问题:

❶不支持业务stream程和WS事务

❷不支持WSDL 2.0

springWS:

主要优点:

❶支持合同优先的Web服务开发方法是最好的

by通过框架约束实施标准和最佳实践(没有办法摆脱它,因此也是限制)

❸支持Spring Annotation和JAX-WS

developer从开发人员的angular度来看最less的代码

❺与Spring Technology Stack(也是与Spring MVC类似的架构栈)的最佳configuration包括Spring Security

关键问题:

supported支持的WS- *规格数量最less(不完全符合JAX-WS)

Spring本身就是标准,因此其他符合Java的框架支持更好的标准支持

❸仅支持合同优先的Web服务开发模式

在这个比较中考虑的另一个选项是Enunciate 。

特别是如果你喜欢先从Java开始。

请看下面的相关文章: 使用Spring-WS构buildWeb服务