`

WebService框架JWS、Axis2、XFire、CXF的区别

 
阅读更多
1、JWS是Java语言对WebService服务的一种实现,用来开发和发布服务。而从服务本身的角度来看JWS服务是没有语言界限的。但是Java语言为Java开发者提供便捷发布和调用WebService服务的一种途径。
2、Axis2是Apache下的一个重量级WebService框架,准确说它是一个Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能制作和发布WebService,而且可以生成Java和其他语言版WebService客户端和服务端代码。这是它的优势所在。但是,这也不可避免的导致了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 Services / SOAP / WSDL 引擎,也是一个不错的ESB总线,为SOA的实施提供了一种选择方案,当然他不是最好的,它仅仅实现了SOA架构的一部分。
基于以上的认识,我们可以得知,虽然有了Java6,但是我们还可以选择Axis2、XFire、CXF等。我们不能指望有了Java6 JWS,就能异想天开去实施SOA。如果要与别的语言交互,也许我们还有赖于Axis2等等,当然这不是唯一选择,仅仅是一种可供选择的方案。
还有,目前很多企业的应用还是基于Java5的,而Java5的项目不会瞬间都升级到Java6,如果要在老项目上做扩展,我们还有赖于其他开源的WS引擎。
分享到:
评论

相关推荐

    Web Service 那点事儿(2)—— 使用 CXF 开发 SOAP 服务 - ImportNew1

    在2007年,XFire宣布成为CXF项目的一部分,随着不断的发展,CXF逐渐成熟,目前已经成为Java世界中强大的Web Service框架之一,有望取代Axis的地位。 使用CXF开发SOAP服务通常包括以下几个步骤: 1. **配置Maven...

    java_调用Webservice接口借鉴.pdf

    在实际开发中,除了上述方法外,还可以使用其他流行的Java Web服务框架,如Apache Axis2、JAX-WS(Java API for XML Web Services)等。这些框架提供了更多的功能和优化,比如支持RESTful风格的服务、自动序列化和反...

    Java6开发WebService详细啊.docx

    在Java6中,开发Web Service变得更加简单和直接,无需依赖额外的框架如CXF、Axis2或XFire。Java6引入了内置的JAX-WS(Java API for XML Web Services)支持,使得创建和发布Web Service成为可能,这大大简化了项目的...

    Java6开发WebService入门

    在早期的Web服务开发中,开发者通常会使用CXF、Axis2、XFire等工具来构建基于Java的应用程序。这些工具之所以被广泛采用,主要是因为它们能够提供广泛的兼容性和灵活性,并且适应多种不同的Java版本环境。然而,在...

    电气自动化仪表工程施工组织设计.doc

    电气自动化仪表工程施工组织设计.doc

    C#与VisionPro联合开发的工业视觉通用框架源码解析及应用场景

    内容概要:本文详细介绍了基于C#和VisionPro构建的一个工业视觉通用框架。该框架主要解决了设备开发中的多个痛点,包括但不限于动态界面布局、标定算法、DLL嵌入方案、光源控制和服务端架构等方面。文中提供了大量具体的代码片段,展示了如何利用C#的强大特性和VisionPro丰富的工具链进行高效开发。例如,通过动态布局代码实现了根据相机数量自动调整界面的功能;采用两种旋转标定方法互为验证确保精度;通过接口化设计使得不同类型的光源控制器可以轻松接入;并使用WCF作为通信协议搭建了高性能的服务端架构。 适合人群:从事工业视觉开发的技术人员,尤其是那些需要频繁面对新项目启动阶段重复劳动的人群。 使用场景及目标:本框架适用于各种涉及多相机协作、复杂标定任务以及需要高度定制化的工业视觉项目。其目的是帮助开发者节省大量的前期准备工作,提高开发效率,降低错误率。 其他说明:尽管该框架已经非常成熟,但在实际应用过程中仍需要注意一些潜在的问题,如VisionPro的线程模型与C#异步特性之间的协调、不同品牌光源控制器的兼容性等。此外,作者还提到未来计划增加云端标定数据同步等功能。

    2023年计算机信息系统集成项目管理工程师学习笔记.docx

    2023年计算机信息系统集成项目管理工程师学习笔记.docx

    pid控制四旋翼仿真 matlab.zip

    matlab

    数据集-part3-沥青路面缺陷目标检测数据集-labelme

    part3包含2000张图片,全部6000张。 当前道路养护领域面临几个显著挑战: 1. 数据稀缺性:大多数机构缺乏高质量的标注数据集来训练可靠的缺陷检测模型 2. 类别不平衡:现有数据集往往只关注裂缝等常见缺陷,忽视修补区域和井盖等重要类别 本沥青路面缺陷目标检测数据集提供6,000张精心标注的高质量图像,包含6个关键类别:裂缝、裂缝修补、坑洞、坑洞修补、井盖及其他。 数据集介绍: https://mp.csdn.net/mp_blog/creation/success/147170602

    2023年自考自动化制造系统数控铣削.doc

    2023年自考自动化制造系统数控铣削.doc

    2023年计算机等级考试一级笔试试卷.doc

    2023年计算机等级考试一级笔试试卷.doc

    C#与Xamarin开发:基于S7-1200 PLC的手机组态APP无线WiFi通信解决方案

    内容概要:本文详细介绍了使用C#和Xamarin开发一款手机组态应用程序,用于通过WiFi实时监控西门子S7-1200 PLC的运行状态。主要内容涵盖PLC通信配置、登录模块的安全措施、数据交互与缓存、异常处理以及报警推送等功能的实现。文中提供了具体的代码示例和技术细节,如使用S7.Net库进行PLC连接、JSON格式缓存PLC状态、SHA256密码哈希、心跳机制维持WiFi连接稳定性和跨线程UI更新等。 适合人群:具有一定编程基础,尤其是熟悉C#和Xamarin框架的研发人员,以及从事工业自动化领域的工程师。 使用场景及目标:适用于希望将工业控制系统集成到移动设备的应用开发者,旨在提高工业现场监控效率,减少维护成本。具体目标包括实现远程监控、提升系统的可靠性和安全性,以及改善用户体验。 其他说明:文中提到多个实用技巧和常见问题解决方案,如WiFi配置、安卓系统权限设置、不同品牌手机的后台服务限制处理等。同时强调了工业无线通信不仅涉及编程技能,还需要掌握一定的网络基础知识。

    基于MATLAB/Simulink的VIENNA整流器双环控制仿真建模及参数优化

    内容概要:本文详细介绍了基于MATLAB/Simulink构建VIENNA整流器仿真模型的过程,重点探讨了电压电流双环控制策略及其参数调整方法。作者通过反复试验确定了电压外环PI控制器的最佳参数配置,并解决了电流内环滞环控制带来的开关频率和电感啸叫等问题。同时,文中还涉及了坐标变换、锁相环、电容选型等关键技术细节,确保直流母线电压纹波控制在0.5%以内,实现了高效稳定的整流效果。 适合人群:从事电力电子研究的技术人员、高校相关专业师生以及对VIENNA整流器感兴趣的工程师。 使用场景及目标:适用于需要深入了解VIENNA整流器工作原理及其实现方式的研究项目;帮助读者掌握如何利用MATLAB/Simulink进行复杂电力电子系统的建模仿真;提供了一套完整的参数调试思路和技术解决方案。 其他说明:文中不仅提供了详细的数学公式和代码片段,还有丰富的实验数据支持,使得理论与实践紧密结合。此外,作者分享了许多宝贵的实战经验,如抗饱和处理、死区时间设置等,有助于提高读者的实际操作能力。

    LoRaWAN工业温控器STM32L073+SX1278的量产代码设计与实现

    内容概要:本文详细介绍了基于STM32L073和SX1278的LoRaWAN工业温控器的量产代码设计与实现。主要内容涵盖硬件架构与基础配置、IAP固件升级、温湿度采集与滤波、继电器控制与工况检测、LoRaWAN通信等方面。文中不仅提供了关键代码示例,还分享了许多实战经验和技术难点解决方案,如低功耗优化、抗干扰措施、数据传输可靠性等。 适合人群:嵌入式系统开发者、物联网工程师、工业自动化技术人员。 使用场景及目标:适用于工业环境中需要远程监控和控制温湿度的场合,旨在提高系统的稳定性和可靠性,确保设备能够在恶劣环境下正常运行。 其他说明:文章强调了工业级设备开发过程中需要注意的各种细节,如硬件选型、软件优化、抗干扰设计等,对于从事类似项目的技术人员具有很高的参考价值。

    2023年山东电子商务师考试试题答案.doc

    2023年山东电子商务师考试试题答案.doc

    2023年农村信用社考试计算机.doc

    2023年农村信用社考试计算机.doc

    Java 8 异步编程利器:CompletableFuture详解

    1. CompletableFuture 简介 2. CompletableFuture 基础操作 3. CompletableFuture 异常处理 4. CompletableFuture 组合操作 5. CompletableFuture 的超时和取消 6. CompletableFuture 线程池管理 7. CompletableFuture 实际应用场景

    使用MATLAB中的maptool box工具箱完成了地图投影.zip

    matlab

    matlab 基础学习 1. MATLAB 基础概念

    MATLAB(Matrix Laboratory)是一种广泛应用于科学计算、工程分析和数据可视化的高级编程语言和开发环境。它以矩阵操作为核心,具有强大的数值计算能力和丰富的工具箱支持。以下是MATLAB基础学习的指南,帮助你快速入门并掌握其核心功能。 --- ### **1. MATLAB 基础概念** - **工作区(Workspace)**:存储变量的地方,所有定义的变量都会显示在这里。 - **命令窗口(Command Window)**:输入命令并即时执行的地方。 - **脚本文件(Script File)**:包含一系列MATLAB命令的`.m`文件,可以重复运行。 - **函数文件(Function File)**:定义自定义函数的`.m`文件,可以接受输入参数并返回输出结果。 --- ### **2. MATLAB 基础语法** #### **(1) 变量与数据类型** - MATLAB 是动态类型的,无需显式声明变量类型。 - 常用数据类型包括: - 数值类型:`double`(默认)、`int8`、`uint8` 等。 - 字符串:`string` 或字符数组(如 `'hello'`)。 - 逻辑类型:`true` 和 `false`。 - 示例: ```matlab a = 10; % 整数 b = 3.14; % 浮点数 c = 'Hello'; % 字符串 d = true; % 逻辑值 ``` #### **(2) 矩阵与数组** - MATLAB 的核心是矩阵操作,几乎所有数据都以矩阵形式存储。 - 创建矩阵: ```matlab A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; % 3x3 矩阵 B = [10, 20,

    基于Simulink的静止无功发生器(SVG)仿真设计与优化

    内容概要:本文详细介绍了使用Simulink进行静止无功发生器(SVG)仿真的全过程。首先,构建了三相两电平拓扑的主电路,特别关注IGBT模块参数设置和直流侧电容的选择。接着,深入探讨了控制环路的设计,特别是锁相环(PLL)模块的参数调整方法及其对系统性能的影响。文中还提供了多个MATLAB代码片段,用于实现电流控制器、PLL算法以及波形分析等功能。此外,文章强调了仿真过程中常见的陷阱和解决方案,如仿真步长选择、PWM脉冲毛刺处理等。最后,通过FFT分析验证了SVG的补偿效果,展示了显著降低谐波畸变率的实际成果。 适合人群:从事电力系统研究和技术开发的专业人士,尤其是熟悉Simulink和MATLAB的工程师。 使用场景及目标:适用于需要深入了解SVG工作原理和仿真技术的研究人员,旨在提高SVG系统的性能和稳定性,确保无功补偿效果最优。 其他说明:文章不仅提供了详细的理论分析,还结合了大量的实践经验,帮助读者更好地理解和解决实际问题。

Global site tag (gtag.js) - Google Analytics