142

有什么区别:

  1. JAX-WS
  2. 轴 2
  3. CXF

这三个都可用于在 Java 中创建 Web 服务。
据我所知,JAX-WS 是一种规范,而 Axis2 和 CXF 是实现,但如果我没记错的话,Java 1.6 已经实现了 JAX-WS。

那么可以使用 Java 1.6 开发 JAX-WS Web 服务而不使用 Axis2 或 CXF 吗?那么Axis2、CXF有什么用呢?

4

4 回答 4

153

JDK 中内置的 JAX-WS 实现实际上只是基本的肥皂材料。如果您需要任何更复杂的 WS-* 事物,例如 WS-Security、WS-RM、WS-Policy 等...,您需要使用 CXF 或 Metro 或 Axis2 等替代方案之一。它还可能取决于您尝试与之集成的内容。例如,CXF 具有一流的 Spring 支持以及非常好的 OSGi 支持。

除了 JAX-WS 之外,CXF 还有其他东西。它还具有兼容的 JAX-RS 实现,并且非常支持将服务公开为 REST 和 SOAP。如果需要这种类型的东西,则具有符合 W3C 的 SOAP/JMS 实现。基本上,很多东西不能从 in-jdk JAX-WS impl 中获得。

另见:

Apache CXF 和 Axis 之间的区别

于 2012-07-19T18:33:28.153 回答
19

简而言之。

WSDL WS-* 与语言无关。

JAX-WS 是构建 Web 服务的 Java 标准。

Apache CXFApache Axis 2是 JAX-WS 的两个实现。他们还提供 JAX-RS 实现,以便您可以构建 Restful 服务。

CXF 与 Spring 和 Camel( camel-cxf ) 有更好的集成。而且 Axis 2 似乎没有活动版本。

于 2014-05-02T18:25:29.217 回答
15

我发现 CXF - 与 Spring 的集成非常容易。此外,它提供了各种功能,例如:

  1. 自定义日志功能
  2. 入站和出站拦截器
  3. 应用级安全
  4. 使用自定义故障轻松处理异常。

如需更多详细信息,如果需要,请查看此链接:

http://predic8.com/axis2-cxf-jax-ws-comparison.htm

http://www.ibm.com/developerworks/java/library/j-jws11/

而且,我阅读了上面的链接,它对我很有帮助。我希望它也适用于你。

谢谢 !

于 2014-02-11T11:58:40.713 回答
3

Web 服务组织发布了一些指南,即 BP(Basic Profile) 1.0 和 BP(Basic Profile) 1.1。基于指南所有语言(Java / .Net)人发布规范与默认实现在java中基于BP 1.0规范是JAX-RPC和1.0规范是JAX-WS

JAX-WS 默认实现是 RI(参考实现) 根据需求/选择我们可以更改实现(RI/AXIS-2/CXF)

当我们使用 java 1.6 时,JDK 中的这种情况已经可用,因此不需要任何其他 jar。如果您想使用不同的实现,那么这种情况需要特定的实现 jar。

Axis-2 和 CXF 来自 Apache

于 2017-06-14T07:03:33.400 回答