XFire部署开发webservice

上传人:平*** 文档编号:15642781 上传时间:2017-11-05 格式:DOCX 页数:8 大小:31.32KB
返回 下载 相关 举报
XFire部署开发webservice_第1页
第1页 / 共8页
XFire部署开发webservice_第2页
第2页 / 共8页
XFire部署开发webservice_第3页
第3页 / 共8页
XFire部署开发webservice_第4页
第4页 / 共8页
XFire部署开发webservice_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《XFire部署开发webservice》由会员分享,可在线阅读,更多相关《XFire部署开发webservice(8页珍藏版)》请在金锄头文库上搜索。

1、java 调用 webservicejava 调用 webservice XFire 问一下.Net 的开发者,开发 Web Services 有多困难?他们会被你的问题逗乐,他们会告诉你所有步骤花费的时间不会超过一分钟。再问一下 Java 开发者,运气好的话你会碰到上面的回答,一般情况下,你会得到一个完全不同的答案。从 Web Services引入到 Java 中至今已经 5 年了,然而它仍然被认为是一门较新的技术,一个主要的原因就是使用 Java 实现 Web Services 太困难了。现在,随着新一代 Web Services 引擎 XFire 的发布,这种情况将会发生明显的变化。使用

2、 XFire,你可以把 Java 类方法发布为 Web Services 而不需要编写额外的代码。在这篇文章中,你将会看到 XFire 使 Web Services 开发变得多么容易和简单。 Web Services 使我们能够在网络上建立分布式系统,应用程序组件可以通过任何平台、任何语言和任何方式访问。无论应用程序如何开发,使用了什么语言,以及运行在什么操作系统平台上,只要它作为 Web Service,并且为协同解决问题而设计,那么你的应用程序,以任何语言开发或在任何平台上,都可以利用它的服务。这是 Web Service 的主要概念。 为了实现 Web Services 的平台无关性和实

3、现访问独立性,软件行业需要遵循一些作为标准的技术。其中一些包括: -XML:在 Web Services 环境中各层之间进行传递的默认数据格式。 -SOAP:封装和交换信息的默认协议。第一次被提出时,它是只取 Simple Object Access Protocol(简单对象访问协议) 的首字母。但是现在 SOAP 更多被认为是一个特定的名词,以它自己而命名,同样很多人认为这是用词不当:SOAP 实际上不是用来访问对象的。另外,它也不再简单。 -WSDL(Web Services Description Language,Web Services 描述语言):描述 Web Services

4、的语言。尽管基于 XML 并且可以被人理解,WSDL 主要是由机器处理,由客户端程序读取和理解。 下面的高级层次图表,基于 WWW 协会发布的“Web Services Architecture”(Web Services 架构)文档,显示了这些技术在实际的工作环境中是如何发挥作用: XFire 是一个免费的开源 SOAP 框架,它不仅可以极大方便地实现这样一个环境,并且可以提供许多 Web Services 规范中高级特征,这些特征在多数的商业或者开源工具都没有提供。你要恰当的理解这些单词:great ease and simplicity(非常轻松和简单)。你将会看到使用 XFire 创建

5、 Web Services 是多么的简单。 假如你的 Web 应用有一个 Java 类,并且你想把它的一个方法发布为 Web Services,当使用 XFire 时,你不需要编写一行额外的 Java 代码。只需要编辑发布描述符,然后你就会得到一个 Web Services。是的,它相当地简单。我们来看一个例子。一个简单的 Java 类 我们的例子是一个银行业应用程序,服务器是运行在 J2SE1.4.2_07 下的 Apache Tomcat5.5.7。假定你已经了解如何使用Java 编写 Web 应用程序,并知道应该如何把它部署到 Apache Tomcat 服务器上。我们的 Web 应用程

6、序非常简单;它只做一件事将资金从一个账户转到另外一个账户上。一个普通的 Java 类 BankingService 包含了一个叫做 transferFunds()的方法来为我们完成这项工作。它需要四个输入参数: 1、 String fromAccount 2、 String toAccount 3、 double amount 4、 String currency 代码如下: Java代码 1. package com.mybank.xfire.example; 2. 3. import java.text.NumberFormat; 4. import java.text.DecimalFo

7、rmat; 5. 6. /* XFire WebServices sample implementation class. 7. */ 8. public class BankingService implements IBankingService 9. 10. /Default constructor. 11. public BankingService() 12. 13. 14. /* Transfers fund from one account to another. 15. */ 16. public String transferFunds( 17. String fromAcc

8、ount, String toAccount, double amount, String currency) 18. 19. String statusMessage = ; 20. 21. /Call business objects and other components to get the job done. 22. /Then create a status message and return. 23. try 24. NumberFormat formatter = new DecimalFormat(#,#,#,#.00); 25. statusMessage = COMP

9、LETED: + currency + + formatter.format(amount)+ 26. was successfully transferred from A/C# + fromAccount + to A/C# +toAccount; 27. catch (Exception e) 28. statusMessage = BankingService.transferFunds(): EXCEPTION: + e.toString(); 29. 30. return statusMessage; 31. 32. 33. 34. 在这里你看到了什么异常的东西了吗?或许没有,除了

10、默认的构造函数,类型是 public。这是必须的。否则,XFire 不能够初始化这个类。因为使用接口的设计是一个好的实践,所以我们的 Java 类也实现了一个称为 IBankingService 的接口。代码十分简单: Java代码 1. package com.mybank.xfire.example; 2. 3. public interface IBankingService 4. 5. public String transferFunds( 6. String fromAccount, String toAccount, double amount, String currency)

11、; 7. 8. 在实际实现中,这样一个方法可能包括各种类型的复杂调用、查询和处理操作。但是我们的示例代码已经最小化了,以至于我们可以集中精力在主要目标上:把这个方法发布为 Web Services。 你可以看到 BankingService 是一个普通的 Java 类,没有任何代码告诉我们它将会在 Web Services 中使用。好的,这里我们不需要增加任何东西。我们所有的工作都在部署描述符里完成。 Web 应用的部署描述符 在 Java 中,Web 应用程序通常需要至少一个部署描述符(叫做 web.xml)对其进行配置。XFire 本身是一个基于 servlet 的应用程序。因此,我们需要

12、增加必要的引用到描述符文件中。然后我们还必须配置将要创建的 Web Services。我们使用一个称为 services.xml 的新文件来完成这件事。 web.xml 首先,修改 web.xml。我们需要增加下面的 XFire servlet 相关的条目: XFireServlet XFire Servlet org.codehaus.xfire.transport.http.XfireConfigurableServlet XFireServlet /servlet/XFireServlet/* XFireServlet /services/* services.xml 现在我们不得不说一

13、下我们的 Web Services 的由什么组成的了。这由一个叫做 services.xml 的文件完成,它存放在META-INF/xfire 目录下,而这整个目录放在 WEB-INF/classes 文件夹中,它在 Web 应用程序的标准类路径中。这里是services.xml 中的基本配置条目: Banking mybank com.mybank.xfire.example.IBankingService com.mybank.xfire.example.BankingService 让我们看看这里都包含了什么内容。Web Services 的定义包含在元素中,它还含有一些子元素。第一个子

14、元素是,它可以是你提供任何的合法名字。这将会被客户端程序和其它需要定位你的服务的组件用到。例如,在服务准备好以后,你将在浏览器上使用这个名字来查看 WSDL。 下一个子元素是。任何合法的 XML 名字都是可以的。用来唯一标识你的服务的各个参数。 元素包含了 Java 类的名字,它指定了方法签名。在我们的例子中,它是接口 IBankingService。如果 Java 类没有实现任何接口,你就需要把类的名字放在这里。在你的 Java 类或者接口中可能有几个方法。只需要一个入口把它们全部发布为 Web Services。 保存了实现方法的 Java 类名。这是一个可选元素。如果上一个元素包含了一个

15、接口,那么相应的实现类必须在这里指定。 就是这样。我们的 Web Services 配置完成了。 XFire 和其它类库 现在是最后一步了,需要得到所有必需的类库。我们怎样得到它们呢?去 XFire 网站,下载 xfire-distribution-1.0.zip,然后解压到一个本地文件夹。复制下面的 jar 文件和它的库文件夹到 WEB-INF/lib 中 : activation-1.0.2.jar commons-codec-1.3.jar commons-httpclient-3.0.jar commons-logging-1.0.4.jar jaxen-1.1-beta-8.jar jdom-1.0.jar log4j-1.2.x.jar mail-1.3.3_01.jar spring-1.2.x.jar stax-api-1.0.jar wsdl4j

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号