javaweb service层,java中的webservice
如何解决写爬虫IP受阻的问题?立即使用。
当我们谈到开发web服务时,需要介绍目前开发web服务的几种框架,分别是Axis、axis2、Xfire、CXF和JWS(也就是前面提到的JAX-WS,是Java6 release提供的web服务的一种实现)。)
前几个项目都是开源项目,其中axis2和cxf是最常用的。axis和XFire随着技术的不断更新也逐渐走到了尽头,但目前官方只更新了axis2和cxf,Axis和XFire都没有更新。
下面就分别介绍下这几个框架之间的区别,以便大家进行更好的选择:
XFire是与Axis2 并列的新一代WebService平台。它被称为新一代,因为它:
1.支持一系列新的Web服务标准——JSR 181、WSDL2.0、JAXB2、WS-Security等。
2.使用Stax解释XML提高了性能。XFire由Woodstox实现为Stax
3.很好用,可以方便快捷的从pojo发布服务;
4.春天的组合;
5.灵活的绑定机制,包括默认的AEGIS,XMLBeans,JAXB 2和castor。
XFire与Axis1性能的比较
1.XFire比Axis1.3快2-6倍
2.XFire的响应时间是Axis1.3的1/2到1/5。
XFire与Axis2的比较
虽然XFire和Axis2都是新一代WebService平台,但是Axis2的开发者太急于发布1.0版本,所以现在还不是稳定版本。它的开发者声称1.1版本即将发布,希望1.1版本是一个稳定的版本。
XFire捐赠给apache后,有人认为Axis2会消亡。其实在很多人眼里,Axis2不是pojo,Dan Diephouse证明XFire比Axis更有市场。
我也发现很多人已经开始从Axis转到XFire,包括我也在劝说身边的人转到XFire进行WebService开发。通常,我可以在几分钟内教会我的团队使用XFire发布他自己的Web服务。
我更倾向于XFire确实比Axis2简单很多。
AXIS VS CXF
在SOA领域,我们认为Web服务是SOA系统的构建模块。
服务开发人员必须熟悉AXIS和CXF。这两个产品都是Apache孵化器下的Web服务开源开发工具。
本文发表时,Axis的最新版本是1.4;CXF现在已经到了3.0版本。
这两个框架都是从现有的开源项目开发而来的。
Axis2由Axis1.x系列发展而来。CXF是XFire和Celtix项目的组合。Axis2完全从底层重新实现,使用新的模块架构,具有更好的可扩展性。CXF还深化了XFire和Celtix这两个开发工具。
比较这两种框架的Web服务开发方法和比较它们的特点一样重要。
从开发人员的角度来看,这两种框架的特点大相径庭。
Axis2的开发方式类似于小型应用服务器。Axis2的开发包要以WAR的形式部署在Tomcat等Servlet容器中,这些容器可以用来监控和管理工作中的Web服务。
Axis2的Web管理模块允许我们动态配置Axis2。可以上传、激活、无效新服务,并且可以修改web服务的参数。
管理UI还可以管理一个或多个正在运行的服务。这种界面管理方式的一个缺点是,运行时修改的参数都不能保存,因为重启后,你的所有修改都将失效。
Axis2允许自己将Web作为一个独立的应用程序发布。
服务,并提供了大量的功能和良好的模型,可以通过自己的模块化架构不断添加新的功能。
一些开发人员认为这种方法对于他们的需求来说过于繁琐,所以他们更喜欢CXF。
CXF更注重开发者的人体工程学和嵌入性。
大部分都可以通过配置API而不是复杂的XML配置文件来完成,Spring的集成也是经常被提及的。CXF支持Spring2.0和CXF的API,Spring的配置文件可以很好的对应。
CXF强调代码优先的设计,并使用简单的API来方便从现有应用程序开发服务。
但是,无论选择Axis2还是CXF,都可以从开源社区获得很多帮助。
这两个框架都是商业公司提供的,WSO2支持AXIS2,爱奥那岛支持CXF。两家公司都有活跃的开发者社区。
下面分别介绍一个这几种Web Service框架的基本概念
1.JWS是WebService在Java语言中的实现,用于开发和发布服务。
从服务本身来看,JWS服务没有语言界限。但是Java语言为Java开发者发布和调用WebService提供了一种便捷的方式。
2.Axis2是Apache下的重量级WebService框架。准确的说是Web服务/SOAP/WSDL的引擎,WebService框架的集大成者。它不仅可以制作和发布web服务,还可以生成Java和其他语言版本的web服务客户端和服务器端代码。
这是它的优势。然而,这不可避免地导致了Axis2的复杂性。用过它的开发者都知道,它所依赖的包的数量和大小都是惊人的,打包、部署、发布都很麻烦,所以不能很好的与现有的应用集成。
但是如果你想用Java以外的语言开发客户端,Axis2提供的丰富工具会是你最好的选择。
3.XFire是一个高性能的WebService框架。在Java6之前,它的受欢迎程度甚至超过了Apache的Axis2。XFire的优点是易于开发,与现有Web的集成性好,易于开发。
但是对于Java以外的语言,却没有相关的代码工具。XFire后来被Apache收购了,因为它太优秀了。收购之后,随着Java6 JWS的崛起,开源的WebService引擎不再被看好,逐渐没落。
4.CXF是Apache的一个重度SOA简单框架,实现了ESB(企业服务总线)。
CXF来自XFire项目,经过改造后形成,就像现在的Struts2来自WebWork一样。
可见XFire的命运将会和WebWork一样,最终淡出人们的视线。CXF不仅是一个优秀的Web服务/so aP/WSDL引擎,还是一个很好的ESB总线,为SOA的实现提供了选择。当然不是最好的,只是实现了SOA架构的一部分。
注:对于Axis2和CXF的关系,一种是Axis2出现的更早,而CXF追赶的更快。
如何抉择:
1.如果应用需要多语言支持,Axis2应该是首选;
2.如果应用程序遵循Spring的哲学,Apache CXF是更好的选择,特别是对于嵌入式Web服务;
3.如果应用程序不需要新的特性,它仍然由原项目中使用的框架实现,如Axis1、XFire、Celtrix或BEA等。所以不要浪费金钱和资源。
最后,我的建议是:如果需要多语言支持,应该选择AXIS2。
如果您需要将实现集中在JAVA上,并希望与Spring集成,CXF是更好的选择,尤其是将您的Web服务嵌入到其他程序中。
如果你觉得这两个框架的新特性对你没有太大用处,你会觉得Axis1也是一个不错的选择,你应该继续使用它,直到你有一个很好的理由替换它。
感谢您的阅读,希望您能从中获益良多。
本文转自:https://blog.csdn.net/apicescn/article/details/42965785
推荐教程:以上《java教程》是给大家展示JAVA开发中用到的几种Web服务框架的细节。更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。