Mule使用的是基于消息的架构风格(如上图所示),消息具有程序语言无关系、组件无关性、数据格式灵活性、消息无状态等特征,基于消息的服务也同样具有无状态的特征,此外,消息风格有非常成熟的应用模式,能够满足当前遇到的大部分数据应用需求以及SOA的需要。因而能够很好的满足需求中的前2个和第三个的可扩展、可定制的需求。
问一下.Net的开发者,开发Web Services有多困难?他们会被你的问题逗乐,他们会告诉你所有步骤花费的时间不会超过一分钟。再问一下Java开发者,运气好的话你会碰到上面的回答,一般情况下,你会得到一个完全不同的答案。从Web Services引入到Java中至今已经5年了,然而它仍然被认为是一门较新的技术,一个主要的原因就是使用Java实现Web Services太困难了。现在,随着新一代Web Services引擎XFire的发布,这种情况将会发生明显的变化。使用XFire,你可以把Java类方法发布为Web Services而不需要编写额外的代码。在这篇文章中,你将会看到XFire使Web Services开发变得多么容易和简单。 Web Services使我们能够在网络上建立分布式系统,应用程序组件可以通过任何平台、任何语言和任何方式访问。无论应用程序如何开发,使用了什么语言,以及运行在什么操作系统平台上,只要它作为Web Service,并且为协同解决问题而设计,那么你的应用程序,以任何语言开发或在任何平台上,都可以利用它的服务。这是Web Service的主要概念。 开发Web Services的好的实践是从WSDL开始。大部分的SOAP引擎提供了从WSDL生成服务stub的工具。XFire也提供了这样一个工具。但是它是基于注释(annotations-based)的,因此需要J2SE5.0。对于仍坚持使用J2SE1.4.x的人来说,它不是一个令人拍手叫好的工具,因为我们有很多其他方式来编写客户端,一个就是文章中演示的方式。
Fire是一个免费的,开源的SOAP框架. 它不仅允许你轻松简易地实现这么一个环境.而且还提供了很多先进的特性.不错,你没有看错,"轻松简易". 本文中你将会看到用XFire构建Web服务是多么的简单.如果你的Web应用有一个Java类, 现在你希望这个类编程Web服务,用XFire完成这一工作你不必写一句代码.仅需操作一下部署描述器,你就会得到一个Web服务.
JavaSE6.0下的WebService从JavaSE6.0开始,Java引入了对WebService的原生支持。我们只需要简单的使用Java的Annotation标签即可将标准的Java方法发布成WebService。(PS:JavaAnnotation资料请参考)但不是所有的Java类都可以发布成WebService。Java类若要成为一个实现了WebService的bean,它需要遵循下边这些原则:JDK5.0Annotation学习笔记(一)这个类必须是public类这些类不能是final的或者abstract这个类必须有一个公共的默认构造函数这个类绝对不能有finalize()方法下面我们将通过一个具体的JavaWebService代码例子,配合上述的WSDL文件,讲述如何编写JavaSE6.0的原生WebService应用。
XFire是与Axis2并列的新一代WebService框架,通过提供简单的API支持WebService各项标准协议,帮助你方便快速地开发WebService应用。相对于Axis来说,目前XFire相对受欢迎,加上其提供了和Spring集成的支持,在目前的WebService开源社区拥有众多的追随者。并且因为XFire为Spring提供的支持,使得我们可以很容易在Spring中使用XFire构建WebService应用。
axis自定义对象序列化,只使用了beanMapping,未说明typeMapping,arrayMapping (参考axis user guide) 基于Axis的自定义对象序列化 1. 在Axis服务端,注册自定义对象的序列化/反序列化器主要是修改axis安装目录下WEB-INF/server-config.wsdd文件。
Axix2webservice开发教程例子简单易懂,很适合初学者。
使用WebService在两个独立系统中交换信息是J2EE开发的常见任务。本文将讲述如何使用ApacheCXF框架来开发WebService,并且利用Tomcat的SSL支持增进WebService的安全性。
SOAP以XML形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。SOAP本身并没有定义任何应用程序语义,如编程模型或特定语义的实现;实际上它通过提供一个有标准组件的包模型和在模块中编码数据的机制,定义了一个简单的表示应用程序语义的机制,这使SOAP能够被用于从消息传递到RPC的各种系统。
Axis2是目前比较流行的WebService引擎。WebService被应用在很多不同的场景。例如,可以使用WebService来发布服务端Java类的方法,以便使用不同的客户端进行调用。这样可以有效地集成多种不同的技术来完成应用系统。WebService还经常被使用在SOA中,用于SOA各个部分交换数据。本课程重点讲解了Axis2的核心功能,并提供了三个项目以使学员理解并掌握如何将Axis2应用于不同的场景。
利用AXIS开发Webservice(一)——如何发布自己的webservice。
本书的主要例子是采用的具有中国特色的房屋贷款的例子,即根据客户房屋数量的不同,银行将会采用不同的首付比率和贷款利率。例子的详细说明参见本书第6章“6.2.1 房屋贷款案例介绍”。同一个例子将会贯穿本书的各种SOA实现技术,使读者能够专注于具体技术的学习。
最近项目需要用到SOAP以及AXIS2的知识,在学习之余,将第一天学到的内容整理了一下,一来做为笔记做个记录,二来如果有需要的,可以做为参考,今天主要是完成了一下功能,通过一个SOAP请求消息(可以自己构造也可以通过指定一个xml文件),然后在WebService中获取这个SOAP请求消息(一个OMElement对象),通过解析这个对象,获取需要的信息,然后对这些信息进行业务处理,最后返回一个SOAP响应消息。
对于面向同步和异步应用的,基于请求/响应模式的分布式计算来说,SOA是一场革命。一个应用程序的业务逻辑(businesslogic)或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。例如,服务的接口和实现相独立。应用开发人员或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。举例来说,一个服务可以用。NET或J2EE来实现,而使用该服务的应用程序可以在不同的平台之上,使用的语言也可以不同。
WebService详细解析及使用方法包括:XFire AXIS CXF的简介和使用。
Axis(Apache eXtensible Interaction System)是一款开源的WebService运行引擎,它是SOAP协议的一个实现,其本身来源于Apache的另一个项目Apache SOAP。 Axis分为1.x系列和Axis 2系列,两个系列体系结构和使用上有较大的区别,相对而言,Axis1.x更加稳定,文档也比较齐全,因此本文内容以Axis 1.x系列最新版本1.4为基础,Axis有C++和Java两个版本的实现,本文描述Java版的Axis。
MyEclipse WebServices是建立在XFire Java SOAP框架和工具基础上的,XFire是一款开源的JavaSOAP框架。它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合。提供了一个工作在WebServices下的简单API,支持POJO和schema开发.XFire支持WebServices standards,Spring整合,支持JBI,支持JAXB,XMLBeans,Java5和JAX-WS.并支持HTTP,JMS,XMPP,In-memory传输协议。