预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

问一下.Net的开发者,开发WebServices有多困难?他们会被你的问题逗乐,他们会告诉你所有步骤花费的时间不会超过一分钟。再问一下Java开发者,运气好的话你会碰到上面的回答,一般情况下,你会得到一个完全不同的答案。从WebServices引入到Java中至今已经5年了,然而它仍然被认为是一门较新的技术,一个主要的原因就是使用Java实现WebServices太困难了。现在,随着新一代WebServices引擎XFire的发布,这种情况将会发生明显的变化。使用XFire,你可以把Java类方法发布为WebServices而不需要编写额外的代码。在这篇文章中,你将会看到XFire使WebServices开发变得多么容易和简单。 WebServices使我们能够在网络上建立分布式系统,应用程序组件可以通过任何平台、任何语言和任何方式访问。无论应用程序如何开发,使用了什么语言,以及运行在什么操作系统平台上,只要它作为WebService,并且为协同解决问题而设计,那么你的应用程序,以任何语言开发或在任何平台上,都可以利用它的服务。这是WebService的主要概念。 为了实现WebServices的平台无关性和实现访问独立性,软件行业需要遵循一些作为标准的技术。其中一些包括: ---XML:在WebServices环境中各层之间进行传递的默认数据格式。 ---SOAP:封装和交换信息的默认协议。第一次被提出时,它是只取SimpleObjectAccessProtocol(简单对象访问协议)的首字母。但是现在SOAP更多被认为是一个特定的名词,以它自己而命名,同样很多人认为这是用词不当:SOAP实际上不是用来访问对象的。另外,它也不再简单。 ---WSDL(WebServicesDescriptionLanguage,WebServices描述语言):描述WebServices的语言。尽管基于XML并且可以被人理解,WSDL主要是由机器处理,由客户端程序读取和理解。 下面的高级层次图表,基于WWW协会发布的“WebServicesArchitecture”(WebServices架构)文档,显示了这些技术在实际的工作环境中是如何发挥作用: 这个流程图显示了WebServices中的核心技术是如何工作的。 这里,Provider是提供服务的应用程序组件,Requester是使用服务的客户端程序。很多其他技术也会参与到交互中,但是这个图只显示了在WebServices环境中必需的核心技术组件。 XFire是一个免费的开源SOAP框架,它不仅可以极大方便地实现这样一个环境,并且可以提供许多WebServices规范中高级特征,这些特征在多数的商业或者开源工具都没有提供。你要恰当的理解这些单词:greateaseandsimplicity(非常轻松和简单)。你将会看到使用XFire创建WebServices是多么的简单。 假如你的Web应用有一个Java类,并且你想把它的一个方法发布为WebServices,当使用XFire时,你不需要编写一行额外的Java代码。只需要编辑发布描述符,然后你就会得到一个WebServices。是的,它相当地简单。我们来看一个例子: 我们的例子是一个银行业应用程序,服务器是运行在J2SE1.4.2_07下的ApacheTomcat5.5.7。假定你已经了解如何使用Java编写Web应用程序,并知道应该如何把它部署到ApacheTomcat服务器上。我们的Web应用程序非常简单;它只做一件事——将资金从一个账户转到另外一个账户上。一个普通的Java类BankingService包含了一个叫做transferFunds()的方法来为我们完成这项工作。它需要四个输入参数: 1、StringfromAccount 2、StringtoAccount 3、doubleamount 4、Stringcurrency 代码如下: packagecom.mybank.xfire.example; importjava.text.NumberFormat;importjava.text.DecimalFormat; /**XFireWebServicessampleimplementationclass.*/publicclassBankingServiceimplementsIBankingService{//Defaultconstructor.publicBankingService(){}/**Transfersfundfromoneaccounttoanother.*/publicStringtransferFunds(StringfromAccount,StringtoAccount,doubleamount,