webservice-XFire开发一个简单的web服务
在这一节,你将了解到如何将一个普通的 java 文件转换为一个 web 服务, services.xml 文件是如何定义的,如何发布这个 web 服务、如何获得这个服务的 WSDL 、如何创建 Client 代码、如何测试这个 web 服务。 package com.kuaff.xfire.samples; 在 src 目录下创建 META-INF/xfire 目录,然后在 META-INF/xfire 目录下创建 services.xml 文件,文件内容为: Available Services:
注意:请在浏览器中输入 http://localhost:8080/xfire/services/ 而不是 http://localhost:8080/xfire/services ,虽然两者显示的页面相同,但是点击页面上的链接,后者的链接会出错,因为后者后面少加了一个“ / ”。点击 [wsdl] 链接,可以查看这个 web 服务的 wsdl 文档。 如果在你的机器上的显示如上面所示,则说明你的这个 web 服务发布成功,可以正常提供基于 http 的 web 服务。 下面一个问题就是如何开发一个 Client ,来消费(使用)这个 web 服务。 XFire 、 Axis 、 asp.net 以及其它的一些商业产品都提供了根据 wsdl 文档创建客户端代码的工具。这里采用 Xfire 提供的 wsgen 工具来创建客户端的访问代码。 Wsgen 是 xfire 提供的一个 ant task , task 的申明如下: <taskdef name= “wsgen” classname= “org.codehaus.xfire.gen.WsGenTask” classpathref= “xfire 的 jar 路径 ” /> 这样,就可以在 build.xml 文件中使用这个 task : <wsgen outputDirectory= “client” wsdl= “MathService.wsdl” package= “com.kuaff.xfire.samples” /> outputDirectory 属性定义创建的代码所在的文件夹, wsdl 是 web 服务的 wsdl 文件, package 代表创建的代码的 packege 。还可以通过 binding 属性制定 bind 类型: jaxb 或者是 xmlbeans , 这样,就会在 client 文件夹下创建多个 java 文件,这些文件提供了访问 web 服务的方法。 在这里声明一点,创建的代码大量的使用了 java 注释,这个 JSE5 中提供的新特性,所以你需要使用 JSE5 编译, Eclipse 也必须要 3.1 以上的版本。 这段 ant 脚本将创建三个文件: MathServicePortType 、 MathServiceImpl 和 MathServiceClient 。 MathServicePortType 是这个 web 服务的客户端接口存根、 MathServiceImpl 实现了这个接口。 MathServiceClient 封装了访问这个 web 服务的方法。 最后,你可以创建一个单元测试类,用来测试这个客户端类。这个类的内容如下: package com.kuaff.xfire.samples; import junit.framework.TestCase; public class MathServiceClientTest extends TestCase { public void testAdd() { MathServiceClient client = new MathServiceClient(); MathServicePortType ms = client.getMathServiceHttpPort(); long result = ms.add(10,20); assertEquals (result,30); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |