14.7. 几种 Web Service 框架介绍

发布于 2023-07-08 04:51:05 字数 2255 浏览 33 评论 0

1.JWS

JWS 是 Java 语言对 WebService 服务的一种实现,用来开发和发布服务。而从服务本身的角度来看 JWS 服务是没有语言界限的。但是 Java 语言为 Java 开发者提供便捷发布和调用 WebService 服务的一种途径。

2.Axis2

Axis2 是 Apache 下的一个重量级 WebService 框架,准确说它是一个 Web Services / SOAP / WSDL 的引擎,是 WebService 框架的集大成者,它能不但能制作和发布 WebService,而且可以生成 Java 和其他语言版 WebService 客户端和服务端代码。这是它的优势所在。

但是,这也不可避免的导致了 Axis2 的复杂性,使用过的开发者都知道,它所依赖的包数量和大小都是很惊人的,打包部署发布都比较麻烦,不能很好的与现有应用整合为一体。但是如果你要开发 Java 之外别的语言客户端,Axis2 提供的丰富工具将是你不二的选择。Axis2的开发方式类似一个小型的应用服务器,Axis2的开发包要以WAR的形式部署到Servlet容器中,比如 Tomcat,通过这些容器可以对工作中的Web Service进行很好的监控和管理。

Axis2 的 Web administrion 模块可以让我们动态的配置Axis2.一个新的服务可以上载,激活,使之失效,修改web服务的参数。管理UI也可以管理一个或者多个处于运行状态的服务。这种界面化管理方式的一个弊端是所有在运行时修改的参数没有办法保存,因为在重启动之后,你所做的修改就会全部失效。

Axis2 允许自己作为独立的应用来发布 Web Service,并提供了大量的功能和一个很好的模型,这个模型可以通过它本身的架构(modular architecture)不断添加新的功能。有些开发人员认为这种方式对于他们的需求太过于繁琐,从而会更喜欢CXF。

3.XFire

XFire是一个高性能的 WebService 框架,在 Java 6 之前,它的知名度甚至超过了Apache的Axis2,XFire 的优点是开发方便,与现有的 Web 整合很好,可以融为一体,并且开发也很方便。但是对Java之外的语言,没有提供相关的代码工具。XFire后来被Apache收购了,原因是它太优秀了,收购后,随着Java6 JWS的兴起,开源的WebService引擎已经不再被看好,渐渐的都败落了。

4.CXF

Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。Apache CXF已经是一个正式的Apache顶级项目。CXF支持多种协议,如:SOAP、XML/HTTP、RESTful HTTP 、 CORBA ,并且可以在多种传输协议上运行,比如:HTTP、JMS 、 JBI。

CXF 可以与 Spring 进行无缝集成。CXF 框架是一种基于 Servlet 技术的 SOA 应用开发框架,要正常运行基于 CXF 应用框架开发的企业应用,除了 CXF 框架本身之外,还需要 JDK 和 Servlet 容器的支持。CXF 不但是一个优秀的Web Services / SOAP / WSDL 引擎,也是一个不错的ESB总线,为SOA的实施提供了一种选择方案,当然他不是最好的,它仅仅实现了SOA架构的一部分。

CXF更注重开发人员的工效(ergonomics)和嵌入能力(embeddability)。大多数都可以通过配置API来完成,替代了比较繁琐的XML配置文件, Spring的集成性经常的被提及,CXF支持 Spring2.0和CXF's API和Spring的配置文件可以非常好的对应。
注:对于Axis2与CXF之间的关系,一个是Axis2出现的时间较早,而CXF的追赶速度快。

总结

以上几种框架的总结:

  • 目前开发 Web Service 的几个框架,分别为 Axis,axis2,Xfire,CXF 以及 JWS(也就是前面所述的 JAX-WS,这是Java6发布所提供的对Web Service服务的一种实现。)
  • Axis 与 XFire 已随着技术不断的更替慢慢落幕,都已不再更新。
  • 以 axis2 与 cxf 所最为常用,目前也只有 axis2 和 cxf 官方有更新。
  • 从使用场景来说,如果你需要多语言的支持,你应该选择 AXIS2。如果你需要把你的实现侧重 JAVA 并希望和 Spring 集成,CXF 就是更好的选择。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

软糖

暂无简介

文章
评论
27 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文