xfire开发实例--HelloWorld篇

2024-04-02 04:32
文章标签 开发 实例 helloworld xfire

本文主要是介绍xfire开发实例--HelloWorld篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

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篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/868974

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

v0.dev快速开发

探索v0.dev:次世代开发者之利器 今之技艺日新月异,开发者之工具亦随之进步不辍。v0.dev者,新兴之开发者利器也,迅速引起众多开发者之瞩目。本文将引汝探究v0.dev之基本功能与优势,助汝速速上手,提升开发之效率。 何谓v0.dev? v0.dev者,现代化之开发者工具也,旨在简化并加速软件开发之过程。其集多种功能于一体,助开发者高效编写、测试及部署代码。无论汝为前端开发者、后端开发者