xfire开发实例--HelloWorld篇

转载 2007年09月20日 00:36:00
 

xfire开发实例--HelloWorld篇


时间: 2007-09-11 20:09   类别: Web Service    前一篇 | 后一篇    作者 juxtapose | 1 最新回复 | Trackback (0) | Permalink


本文从最基础的HelloWorld用例开始,介绍如何利用xfire开发web service应用。以后就可以开发复杂的web service应用了。 

开发环境:eclipse3.2+tomcat5.5.9+xfire1.2.6

一:在eclipse中新建项目XFireProject

1、建立源文件夹src.main;新建HelloService.java文件,该java文件只声明了一个简单的sayHello(String name)方法,。java文件内容如下:

/**
 * 
 
*/
package com.liuxiang.xfire;

/**
 * 简单例子HelloWorld例子
 * HelloService.java
 * com.liuxiang.xfire
 * XFireProject
 * 
@author liuxiang mailto:juxtapose@163.com
 * 2007-9-9 下午05:01:38
 *
 
*/
public class HelloService {
    
public String sayHello(String name){
        
return name+",你好!";
    }
}

2、在src.main目录下新建META-INF/xfire/services.xml文件,该文件用于声明一个service。service.xml文件的内容如下:

<!-- START SNIPPET: services -->
<beans xmlns="http://xfire.codehaus.org/config/1.0">
  
<service>
    
<name>HelloService</name>
      
<namespace>http://com.liuxiang.xfireDemo/HelloService</namespace>
      
<serviceClass>com.liuxiang.xfire.HelloService</serviceClass>
  
</service>
</beans>
<!-- END SNIPPET: services -->

3、将将编译后的HelloService.class文件和service.xml文件部署到tomcat中。文件的位置如下:

webappsxfireWEB-INFclassesMETA-INFxfireservices.xml;

webappsxfireWEB-INFclassescomliuxiangxfireHelloService.class;

4、启动tomcat;正确启动tomcat之后,在IE地址栏里输入:http://localhost:8080/xfire/services/ 将会出现如下的页面:该页面正常显示了刚才部署的HelloService。如下图:Available Services: HelloService [wsdl]

如果能正确显示上图,说明刚才的部署成功了。如果不能正确显示,请参照我上一篇文章:xfire1.2.6配置篇。

单击[wsdl],将会出现http://localhost:8080/xfire/services/HelloService?wsdl,即生成的一个wsdl文件。

5、生成web service客户端调用文件

      xfire提供了两种生成客户端测试的方式,一种提供了ant脚本,另一种是提供了xfire的eclipse插件;本文介绍了使用ant脚本的方式生成客户端的方式。

    首先在项目XFireProject中增加一个build.xml文件。xfire提供了一个ant任务:

<taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="myclasspath" />

build.xml文件的内容如下:

<?xml version="1.0"?>
<project name="XFireProject" default="genfiles" basedir=".">
    
<property name="lib" value="lib" />
    
<path id="myclasspath">
        
<fileset dir="${lib}">
            
<include name="*.jar" />  
        
</fileset>  
        
<pathelement location="${genfiles}" />
    
</path>
    
<!--通过XFire ant任务生成客户端代码的存放位置-->
    
<property name="code_path" value="src.client" />  
    
<!--需要生成客户端代码的wsdl文件-->
    
<property name="wsdl_path" value="http://localhost:8080/xfire/services/HelloService?wsdl" /> 
    
<!--生成客户端代码的包名--> 
    
<property name="code_package" value="com.liuxiang.xfire.client" />
    
    
<!-- Remove classes directory for clean build -->
    
<target name="clean" description="Prepare for clean build">  
        
<delete dir="${code_path}"/>
        
<mkdir dir="${code_path}"/>
    
</target>
    
    
<!--<target name="genfiles" depends="clean" description="Generate the files">  -->
    
<target name="genfiles" description="Generate the files">
        
<taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="myclasspath" />
        
<!--outputDirectory属性定义创建的代码所在的文件夹
            wsdl是web服务的wsdl文件
            package代表创建的代码的package
        
-->
        
<wsgen outputDirectory="${code_path}" wsdl="${wsdl_path}" package="${code_package}" binding="xmlbeans" />  
    
</target>
</project>

 

执行ant脚本,将会生成客户端代码,共三个文件。会放在包com.liuxiang.xfire.client下面,文件分别是:

HelloServiceClient.java、HelloServiceImpl.java、HelloServicePortType.java

6、编写测试代码,通过调用5中生成的代码,编写TestClient.java文件。文件内容如下:

/** *//**
 * 
 
*/

package com.liuxiang.xfire;

import java.net.MalformedURLException;

import org.codehaus.xfire.XFire;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;

import com.liuxiang.xfire.client.HelloServiceClient;
import com.liuxiang.xfire.client.HelloServicePortType;

/** *//**
 * 通过XFire生成的客户端进行调用
 * 
 * TestClient.java
 * com.liuxiang.xfire
 * XFireProject
 * 
@author liuxiang mailto:juxtapose@163.com
 * 2007-9-9 下午06:54:36
 *
 
*/

public class TestClient ...{
    
/** *//**
     * 客户端测试
     * 通过ant脚本生成的客户端进行调用
     * 
     * 
@param name    传入的参数,客户名字
     * 
@return    返回sayHello()的返回值
     
*/

    
public static String testClient(String name)...{
        HelloServiceClient helloSC 
= new HelloServiceClient();
        HelloServicePortType helloSP 
= helloSC.getHelloServiceHttpPort();
        String result 
= helloSP.sayHello(name);
        
return result;
    }


    
/** *//**
     * 
@param args
     * 
@throws Exception 
     
*/

    
public static void main(String[] args) throws Exception ...{
        System.out.println(testClient(
"Liuxiang"));
    }


}

运行该代码,在控制台会输入如下信息:

Liuxiang,你好!

表明,第一个web service用例已经运行成功了。以后,就可以开发需要的web service了。

 

xfire开发实例--HelloWorld篇

    本文从最基础的HelloWorld用例开始,介绍如何利用xfire开发web service应用。以后就可以开发复杂的web service应用了。 开发环境:eclipse3.2+tomca...
  • juxtapose
  • juxtapose
  • 2007年09月10日 21:51
  • 18121

xfire开发实例两个方法--HelloWorld篇

xfire开发实例--HelloWorld篇 收藏    本文从最基础的HelloWorld用例开始,介绍如何利用xfire开发web service应用。以后就可以开发复杂的web service应...
  • yao_2008
  • yao_2008
  • 2010年02月23日 11:36
  • 1333

Node.js开发入门—HelloWorld再分析

详细分析基于http模块的HelloWorld,介绍代码结构和HTTP协议的相关知识。
  • foruok
  • foruok
  • 2015年08月05日 07:03
  • 7847

webservice xfire实现的一个超简单的例子

在网上查了各种资料,实验了好多次,总是有些小地方耽误了,最后终于成功搭建出了xfire,回想起来其实很简单,但是看别人的笔记,难免会有些地方理解的不到位,所以抽了点时间简单的记录了下,自己做的笔记才最...
  • lucherr
  • lucherr
  • 2012年09月26日 23:57
  • 5482

使用XFire开发WebServices服务端

完整版见https://jadyer.github.io/
  • jadyer
  • jadyer
  • 2010年12月17日 17:13
  • 4143

基于xfire实现webservice的实例

       常见错误及解决办法:       1.jar包冲突       如果运行后得到以下错误org.codehaus.xfire.XFireRuntimeException: Could no...
  • java_cxrs
  • java_cxrs
  • 2011年05月26日 21:18
  • 11294

使用XFire开发WebService入门教程

首先,我们在eclipse中建立一个WebService工程作为服务端,并编写如下代码:IHelloService.java  服务接口,有一个方法,参数和返回值均为复杂类型User package ...
  • daryl715
  • daryl715
  • 2007年07月25日 13:35
  • 12294

XFire+MyEclipse 开发WebService入门实例之HelloWorld

由于MyEclipse中已经集成了XFire框架,所以在MyEclipse下用XFire开发webservice十分方便快捷! 下面我们就举一个最简单常见的例子作为入门,也就是经典的helloworl...
  • feixueqianer
  • feixueqianer
  • 2010年08月30日 19:35
  • 3815

XFire开发WebService实例

1、建立webservice工程,建立简单服务:import java.util.HashMap;//Generated by MyEclipsepublic interface IMessage {...
  • gaowenming
  • gaowenming
  • 2009年12月26日 18:30
  • 1488

xfire 开发实例

在webservice开发中,可以根据项目需求选择不同的开发技术,今天我们就浅谈一下xfire来开发webService. 1.我们在web项目中web.xml中配置xfire的servlet ...
  • xiaocai9999
  • xiaocai9999
  • 2017年05月08日 17:43
  • 79
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:xfire开发实例--HelloWorld篇
举报原因:
原因补充:

(最多只允许输入30个字)