`

XFire构建client的几种方式

阅读更多

XFire构建客户端也有几种方式。

一,如果能够知道并得到service的类,那么可以在客户端中通过xfier的代理工厂生成service类。然后调用相应的方法。

package test.client;
 
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
 
import cn.cjw.services.exchange.ExchangeService;
 
public class ExchangeServiceClient {
	
	public double RMB2Dollar(double RMB)
	{
		Service serviceModel = new ObjectServiceFactory().create(ExchangeService.class);
		String serviceURL = "http://[ip]:[port]/[yourProjectName]/services/ExchangeService";//相应需要修改
		ExchangeService service = null;
		try{
			service = (ExchangeService)new XFireProxyFactory().create(serviceModel, serviceURL);			
		}catch(Exception e){
			throw new RuntimeException(e);
		}
		return service.RMB2Dollar(RMB);
	}
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ExchangeServiceClient client = new ExchangeServiceClient();
		System.out.println("invoking service : ExchangeService results="+client.RMB2Dollar(100.0));
	}
 
}

 二,通过xfire的IDE插件,xfire提供好几个集成到IDE的自动生成客户端的插件。可以到官网下载。然后通过图形化界面生成client。

三,由于service类在很多情况下并不是只有自己开发的。这时候很有可能你没有办法得到service类,但是service发布的wsdl文件是可 以得到,xfire可以通过wsdl生成client。这里又包含两种方式,第一,把wsdl下载下来到本地的classpath。通过读取wsdl生 成。或者,可以直接通过url来生成。这里说明第二种情况。

package test.client;
 
import java.net.HttpURLConnection;
import java.net.URL;
 
import org.codehaus.xfire.client.Client;
 
public class ExchangeServiceClient {
	
	public double RMB2Dollar(double RMB)
	{
		try{
			String wsdl = "http://[ip]:[port]/[yourProjectName]/services/ExchangeService?wsdl";
			URL url = new URL(wsdl);
			HttpURLConnection httpConnection = (HttpURLConnection)url.openConnection();
			httpConnection.connect();
			Client client = new Client(httpConnection.getInputStream(),null);			
			Object []results = client.invoke("RMB2Dollar", new Object[]{RMB});
			return (Double)results[0];
		}catch(Exception e){
			throw new RuntimeException(e);
		}
	}
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ExchangeServiceClient client = new ExchangeServiceClient();
		System.out.println("invoking service : ExchangeService results="+client.RMB2Dollar(100.0));
	}
 
}
 

 

貌似这种调用更加简单哦!

 

Client client = new Client(new URL(URL));
Object[] results = client.invoke("say", new Object[]{passPort});
 

 

 

分享到:
评论

相关推荐

    XFire_lib.jar

    3. **灵活的配置**:Spring与XFire的集成允许开发者通过Spring的XML配置或注解方式来配置Web服务,提供了一种直观且灵活的方式来管理Web服务的生命周期。 4. **事务管理**:Spring的事务管理能力可以扩展到XFire...

    xfire+spring+webservice+client

    标题中的“xfire+spring+webservice+client”是一个关于集成XFire、Spring框架和Web服务客户端的专题,这涉及到Java开发中的一项重要技术——Web服务的消费与提供。在这个主题下,我们将深入探讨以下几个核心知识点...

    xfire开发的带session生命周期的webservice应用工程实例

    在IT行业中,Web服务是一种广泛使用的通信协议,它允许不同应用程序之间进行数据交换。XFire是Java平台上一个曾经流行的开源框架,专门用于构建和消费Web服务。本项目实例旨在演示如何利用XFire来开发一个带有...

    WebService调用的几种方式

    WebService是Web应用程序之间的一种通信标准,它允许不同的系统通过网络交换数据和服务。本文将深入探讨在Java环境...无论哪种方式,理解WebService的基本原理,如SOAP消息结构、WSDL规范等,都是必不可少的基础知识。

    XFire demo

    XFire 是一个基于 Java 的开源 Web 服务框架,它为开发人员提供了一种简单、高效的方式来创建和部署 Web 服务。在本项目中,我们有一个使用 JDK 1.7 实现的 Maven 项目,它展示了如何使用 XFire 进行基本操作。XFire...

    XFire1.2使用例子

    在源码层面,XFire的核心是基于CXF(Apache CXF,一个开源的Java EE服务框架)进行构建的,它提供了SOAP和RESTful两种通信方式,支持多种Web服务协议,如WS-*标准。XFire1.2的使用例子主要涵盖了以下几个方面: 1. ...

    xfire-webservice数据格式及集成spring

    在提供的压缩包中,`testWSSpring_client`和`testWSSpring`可能包含了使用XFire和Spring开发的Web服务客户端和服务器端的代码。这些代码可以帮助我们理解如何在实际项目中应用上述概念。 7. **总结** XFire和...

    Xfire实战[Web服务开发之旅]

    Xfire适合用于以下几种场景: 1. **快速原型开发**:由于Xfire支持直接从POJO创建Web服务,因此非常适合用于快速搭建原型系统。 2. **轻量级服务构建**:对于不需要复杂企业级功能的小型项目,Xfire提供了理想的...

    WebService XFire

    2. **XML Binding (XFire Aegis)**:XFire使用Aegis绑定,这是一种基于Java反射的机制,可以将Java对象直接序列化和反序列化为XML,支持自定义数据类型。 3. **配置文件**:XML配置文件(如`xfire.xml`)是XFire的...

    webService xfire学习资料及jar包

    总的来说,"webService xfire学习资料及jar包"是一个很好的起点,帮助Java开发者掌握如何使用XFire构建和使用Web服务。通过深入学习和实践,你可以熟练地利用这个框架来提升你的开发效率,实现跨系统的无缝集成。

    MyEclipse下XFire开发Webservice实例

    总之,XFire提供了一种高效、灵活的方式来在MyEclipse中开发和部署Web Service,为开发者提供了强大的工具来构建和测试服务,同时也简化了客户端的创建过程。对于需要快速开发Web Service的Java开发者来说,XFire是...

    第十五章 开发XFire Web Service应用.pdf

    从技术角度来看,WebService主要依靠以下几种关键技术: 1. **XML(Extensible Markup Language)**:用于数据编码和交换的标准格式。 2. **SOAP(Simple Object Access Protocol)**:一种轻量级的协议,用于在...

    webservice四种发布方式及客户端调用

    - AXIS1 的客户端调用支持字符串和实体类两种方式。当调用 AXIS2 发布的服务时,可能出现实体类属性为 null 的问题。 #### 六、小结 在选择 WebService 发布方式时,需要根据项目需求和技术背景来决定。CXF 以其...

    WebService教程实例

    1. **执行MyEclipse WebService Wizard**:有两种方式可以启动MyEclipse WebService Wizard: - **通过工具栏**:在MyEclipse透视图的工具栏上启动向导。 - **通过Workbench**:在打开的WebService Wizard的...

    cxf超时设置

    配置CXF的超时设置通常可以通过以下几种方式: 1. **Java代码配置**: 可以在创建服务客户端时,通过`ClientProxyFactoryBean`的`setConnectionTimeout`和`setReceiveTimeout`方法来设置超时: ```java ...

    WebServices学习资料

    2. [XFire的Client开发三种模式详解](http://blog.csdn.net/jadyer/article/details/6127517) #### 基于AXIS2的SOAP服务 Axis2是Apache软件基金会下的一个开源项目,提供了一种高效且灵活的方式来创建和部署SOAP ...

    CXF实现webService

    主要有以下两种方式: 1. Spring配置文件中声明服务:在Spring配置文件中,可以通过`<jaxws:endpoint>`或`<jaxws:client>`元素声明CXF服务端或客户端。 2. 使用Spring Bean:将CXF服务端或客户端作为Spring Bean,...

    CXF完整实现WebService

    CXF(CXF = CXF = XFire + XFire)是一个强大的工具,支持多种Web服务标准,如SOAP、RESTful、WS-*等。本教程将深入探讨如何使用CXF来实现一个完整的Web服务生命周期,包括服务的创建、发布、调用以及客户端的构建。...

    Apache cxf 与spring集成

    CXF允许开发者通过Code First或WSDL First两种方式轻松地发布和使用Web服务。 在与Spring框架集成时,Apache CXF能够利用Spring的强大功能来管理服务的生命周期和依赖注入,使得Web服务的开发更加便捷和灵活。集成...

Global site tag (gtag.js) - Google Analytics