XFire的Web Servicep客户端快速配置

本文介绍如何利用XFire工具通过ant脚本生成WebService客户端代码,并演示了如何编写测试代码远程访问WebService并调用相关方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、把XFire及其需要的包都拷过来

下载的XFire包,及其解压后,lib目录下全部的包都拷过来

在项目的根目录下建立一个ant文件(BUILD.XML),必须指出lib目录所在的路逗头 衿鞫说膚sdl路径:

<project name="struts-hibernate-eg" basedir="." default="help">

<path id="build.classpath">
<fileset file="lib/*.jar" />
</path>

<!-- Help -->
<target name="help">
<echo message="BASEDIR:${basedir}"/>
<echo message="targer: help"/>
<echo message="usage: ant "/>
</target>

<!-- Wsgen -->
<target name="Wsgen">
<taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="build.classpath" />
<wsgen outputDirectory="bin" wsdl="http://192.168.0.16:8080/MathService/services/MathService?wsdl" package="client" />
</target>

</project>

二、运行通过ant运行这个文件,即通过服务器的wsdl类热核,生成客户端所需要的类

其中MathServiceClient.java和MathServicePortType.java,这两个类是最重要的,其他的可要可不要

三、编写自己的类,调用客户端类,即可以远程访问Web Service,并调用其对应的类

public class TestClient {

public static void main(String[] args) {

MathServiceClient msc=new MathServiceClient();
MathServicePortType msp=msc.getMathServiceHttpPort();
System.out.println(msp.add(100, 200));
System.out.println(msp.sub(100, 200));
}

}

更复杂的生成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

编写测试代码,通过调用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"));
}

}
内容概要:本文档详细介绍了Analog Devices公司生产的AD8436真均方根-直流(RMS-to-DC)转换器的技术细节及其应用场景。AD8436由三个独立模块构成:轨到轨FET输入放大器、高动态范围均方根计算内核和精密轨到轨输出放大器。该器件不仅体积小巧、功耗低,而且具有广泛的输入电压范围和快速响应特性。文档涵盖了AD8436的工作原理、配置选项、外部组件选择(如电容)、增益调节、单电源供电、电流互感器配置、接地故障检测、三相电源监测等方面的内容。此外,还特别强调了PCB设计注意事项和误差源分析,旨在帮助工程师更好地理解和应用这款高性能的RMS-DC转换器。 适合人群:从事模拟电路设计的专业工程师和技术人员,尤其是那些需要精确测量交流电信号均方根值的应用开发者。 使用场景及目标:①用于工业自动化、医疗设备、电力监控等领域,实现对交流电压或电流的精准测量;②适用于手持式数字万用表及其他便携式仪器仪表,提供高效的单电源解决方案;③在电流互感器配置中,用于检测微小的电流变化,保障电气安全;④应用于三相电力系统监控,优化建立时间和转换精度。 其他说明:为了确保最佳性能,文档推荐使用高质量的电容器件,并给出了详细的PCB布局指导。同时提醒用户关注电介质吸收和泄漏电流等因素对测量准确性的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值