JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--JAVA技术--JAVA网络  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
使用XFire开发一个简单的web服务
作者:     文章来源:
访问次数:5次     加入时间:2007年03月10日
在这一节,你将了解到如何将一个普通的java文件转换为一个web服务,services.xml文件是如何定义的,如何发布这个web服务、如何获得这个服务的WSDL、如何创建Client代码、如何测试这个web服务。
首先打开Eclipse,创建一个普通的java工程,将xfire所需的jar和xfire的jar加入到工程所需的类库引用中。创建一个简单的java文件,这个java文件简单到只提供一个add方法。
  1. package com.kuaff.xfire.samples;
  2. public class MathService
  3. {
  4.     public long add(int p1, int p2)
  5.     {
  6.         return p1 + p2;
  7.     }
  8. }


在src目录下创建META-INF/xfire目录,然后在META-INF/xfire目录下创建services.xml文件,文件内容为:
  1. <beans xmlns="http://xfire.codehaus.org/config/1.0">
  2.   <service>
  3.     <name>MathService</name>
  4.     <namespace>http://www.kuaff.com/xfire/samples/MathService</namespace>
  5.     <serviceClass>com.kuaff.xfire.samples.MathService</serviceClass>
  6.   </service>
  7. </beans>

这个文档定义了你要发布的web服务,这个定义了一个名为MathService的服务,服务类为com.kuaff.xfire.samples.MathService。 

这样我们的一个简单的web服务就开发完成了,下面就要把它发布出去。 

将工程bin目录下的所有的文件复制到第一节中配置的tomcat/webapps/xfire/WEB-INF/classes文件夹下,启动tomcat,你就可以检查这个web服务是否发布成功了。

打开浏览器,在浏览器地址栏中输入http://localhost:8080/xfire/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的申明如下:
  1. <taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="xfire的jar路径" />


这样,就可以在build.xml文件中使用这个task:

  1. <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服务的方法。

最后,你可以创建一个单元测试类,用来测试这个客户端类。这个类的内容如下:
  1. package com.kuaff.xfire.samples;
  2. import junit.framework.TestCase;
  3. public class MathServiceClientTest extends TestCase
  4. {
  5.     public void testAdd()
  6.     {
  7.         MathServiceClient client = new MathServiceClient();
  8.         MathServicePortType ms = client.getMathServiceHttpPort();
  9.         long result = ms.add(10, 20);
  10.         assertEquals(result, 30);
  11.     }
  12. }
JSP虚拟主机 | JSP空间 | JSP主机 | JSP双线虚拟主机 | JAVA空间 | JAVA虚拟主机 | 虚拟服务器 | JSP 虚拟服务器 | VPS
Virtual Private Server | JAVA虚拟服务器 | VM服务器 | VHOST | 虚拟操作系统 | JSP论坛 | JAVA论坛 | JSP站点论坛
Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号