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});
分享到:
相关推荐
3. **灵活的配置**:Spring与XFire的集成允许开发者通过Spring的XML配置或注解方式来配置Web服务,提供了一种直观且灵活的方式来管理Web服务的生命周期。 4. **事务管理**:Spring的事务管理能力可以扩展到XFire...
标题中的“xfire+spring+webservice+client”是一个关于集成XFire、Spring框架和Web服务客户端的专题,这涉及到Java开发中的一项重要技术——Web服务的消费与提供。在这个主题下,我们将深入探讨以下几个核心知识点...
在IT行业中,Web服务是一种广泛使用的通信协议,它允许不同应用程序之间进行数据交换。XFire是Java平台上一个曾经流行的开源框架,专门用于构建和消费Web服务。本项目实例旨在演示如何利用XFire来开发一个带有...
WebService是Web应用程序之间的一种通信标准,它允许不同的系统通过网络交换数据和服务。本文将深入探讨在Java环境...无论哪种方式,理解WebService的基本原理,如SOAP消息结构、WSDL规范等,都是必不可少的基础知识。
XFire 是一个基于 Java 的开源 Web 服务框架,它为开发人员提供了一种简单、高效的方式来创建和部署 Web 服务。在本项目中,我们有一个使用 JDK 1.7 实现的 Maven 项目,它展示了如何使用 XFire 进行基本操作。XFire...
在源码层面,XFire的核心是基于CXF(Apache CXF,一个开源的Java EE服务框架)进行构建的,它提供了SOAP和RESTful两种通信方式,支持多种Web服务协议,如WS-*标准。XFire1.2的使用例子主要涵盖了以下几个方面: 1. ...
在提供的压缩包中,`testWSSpring_client`和`testWSSpring`可能包含了使用XFire和Spring开发的Web服务客户端和服务器端的代码。这些代码可以帮助我们理解如何在实际项目中应用上述概念。 7. **总结** XFire和...
Xfire适合用于以下几种场景: 1. **快速原型开发**:由于Xfire支持直接从POJO创建Web服务,因此非常适合用于快速搭建原型系统。 2. **轻量级服务构建**:对于不需要复杂企业级功能的小型项目,Xfire提供了理想的...
2. **XML Binding (XFire Aegis)**:XFire使用Aegis绑定,这是一种基于Java反射的机制,可以将Java对象直接序列化和反序列化为XML,支持自定义数据类型。 3. **配置文件**:XML配置文件(如`xfire.xml`)是XFire的...
总的来说,"webService xfire学习资料及jar包"是一个很好的起点,帮助Java开发者掌握如何使用XFire构建和使用Web服务。通过深入学习和实践,你可以熟练地利用这个框架来提升你的开发效率,实现跨系统的无缝集成。
总之,XFire提供了一种高效、灵活的方式来在MyEclipse中开发和部署Web Service,为开发者提供了强大的工具来构建和测试服务,同时也简化了客户端的创建过程。对于需要快速开发Web Service的Java开发者来说,XFire是...
从技术角度来看,WebService主要依靠以下几种关键技术: 1. **XML(Extensible Markup Language)**:用于数据编码和交换的标准格式。 2. **SOAP(Simple Object Access Protocol)**:一种轻量级的协议,用于在...
- AXIS1 的客户端调用支持字符串和实体类两种方式。当调用 AXIS2 发布的服务时,可能出现实体类属性为 null 的问题。 #### 六、小结 在选择 WebService 发布方式时,需要根据项目需求和技术背景来决定。CXF 以其...
1. **执行MyEclipse WebService Wizard**:有两种方式可以启动MyEclipse WebService Wizard: - **通过工具栏**:在MyEclipse透视图的工具栏上启动向导。 - **通过Workbench**:在打开的WebService Wizard的...
配置CXF的超时设置通常可以通过以下几种方式: 1. **Java代码配置**: 可以在创建服务客户端时,通过`ClientProxyFactoryBean`的`setConnectionTimeout`和`setReceiveTimeout`方法来设置超时: ```java ...
2. [XFire的Client开发三种模式详解](http://blog.csdn.net/jadyer/article/details/6127517) #### 基于AXIS2的SOAP服务 Axis2是Apache软件基金会下的一个开源项目,提供了一种高效且灵活的方式来创建和部署SOAP ...
主要有以下两种方式: 1. Spring配置文件中声明服务:在Spring配置文件中,可以通过`<jaxws:endpoint>`或`<jaxws:client>`元素声明CXF服务端或客户端。 2. 使用Spring Bean:将CXF服务端或客户端作为Spring Bean,...
CXF(CXF = CXF = XFire + XFire)是一个强大的工具,支持多种Web服务标准,如SOAP、RESTful、WS-*等。本教程将深入探讨如何使用CXF来实现一个完整的Web服务生命周期,包括服务的创建、发布、调用以及客户端的构建。...
CXF允许开发者通过Code First或WSDL First两种方式轻松地发布和使用Web服务。 在与Spring框架集成时,Apache CXF能够利用Spring的强大功能来管理服务的生命周期和依赖注入,使得Web服务的开发更加便捷和灵活。集成...