`

XFire客户端口调用方式

阅读更多

1、使用服务端的窄接口类

如果客户端可以获取服务端的Web Service的窄接口类,这时可以使用XFire的ObjectServiceFactory将对应地址的Web Service转换为窄接口实例进行调用

如:

Service serviceModel = new ObjectServiceFactory().create(HelloWorldService.class);
String serviceURL = "http://localhost:8080/XFire/services/HelloWorldService";
HelloWorldService service = null;
try{
	service = (HelloWorldService)new XFireProxyFactory().create(serviceModel, serviceURL);			
}catch(Exception e){
	throw new RuntimeException(e);
}
System.out.println(service.sayHello());

 2、使用WSDL文件构造客户端程序

并不是任何时候都可以获得Web Service服务端的窄接口类,但我们必然可以获取Web Service对应的WSDL文档。XFire允许我们仅通过Web Service对应的WSDL文件构造客户端访问程序。这无疑给创建客户端程序带来了极大的便利性,用户可以直接通过URL指定WSDL,也可以将 WSDL保存在本地系统中,通过InputStream的方式获取WSDL内容。下面,我们使用InputStream的方式提供WSDL

Client clent = new Client(new URL("http://localhost:8080/XFire/services/HelloWorldService?wsdl"));   
Object[] res = clent.invoke("sayHello", new Object[]  {});  
System.out.println(res[0]);

 用户可以通过http://localhost:8080/XFire/services/HelloWorldService?wsdl获取 HelloWorldService 对应的WSDL,并将其保存在工程项目的src对应的类包目录com/ baobaotao/xfire/client/HelloWorldService .wsdl中。我们通过Spring的 ClassPathResource读取HelloWorldService .wsdl,XFire从Resource中获取WSDL的输入流并生成一个客户端实例。接着,我们就可以通过这个客户端实例,指定Service服务名和输入参数调用Web Service的服务方法了

 

3、根据WSDL生成客户端代码

可以用插件生成,也可以用ant 生成

其中ant生成代码的build.xml为:

<project name="WsGen" basedir="." default="wsgen">   
    <path id="compile.classpath">   
        <fileset file="${basedir}/WebRoot/WEB-INF/lib/*.jar"/>   
    </path>   
    
    <target name="wsgen">   
        <taskdef name="WsGenTask" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="compile.classpath"/>   
        <WsGenTask outputDirectory="${basedir}/client" wsdl="http://localhost:8080/XFire/services/HelloWorldService?wsdl" package="org.vivianj.HelloWorldService.client" overwrite="true"/>   
    </target>   
</project>  

 

生成调用方法为:

HelloWorldServiceClient client = new HelloWorldServiceClient();
HelloWorldServicePortType service = client.getHelloWorldServiceHttpPort();
System.out.println(service.sayHello());

 

分享到:
评论

相关推荐

    xFire发布Web Service,并调用远程服务

    确保正确配置了服务的WSDL(Web Service Description Language)信息,WSDL文件是Web服务的规范文档,描述了服务的接口、消息格式和调用方式。 - 接下来,你需要将服务部署到一个支持xFire的服务器上。这可能是一个...

    实现webServices接口调用demo

    本教程将深入讲解如何使用XFire在Java环境中实现Web服务接口的调用,包括内部和外部访问。 一、Web服务简介 Web服务是通过SOAP(Simple Object Access Protocol)协议,使用HTTP作为传输层,XML作为数据交换格式的...

    使用XFire发布WebService

    4. **启动服务**: 最后,启动XFire服务监听指定端口,这样Web服务就对外提供了。 **调用WebService客户端** 1. **生成客户端代理**: 使用XFire的工具,如`xfire-codegen`,根据服务的WSDL生成客户端代理类。 2. *...

    xfire的简单实例

    在xfire中,我们无需深入了解这些复杂的概念和协议,因为xfire提供了一种抽象化的开发方式,使得开发者可以专注于业务逻辑,而将底层的通信细节交给框架处理。 【标签】:“xfire webservice” xfire是专门为简化...

    xfire的webservice项目demo

    Xfire客户端库提供了工具,可以基于WSDL生成对应的客户端代理类,使得开发者能够像调用本地方法一样调用远程Web服务。 在实际操作中,首先启动xfire_server,确保Web服务已经准备好接收请求。服务器端启动后,它会...

    Xfire的client.zip_Xfire客户端代码_webservice

    在本案例中,"Xfire的client.zip"是一个包含了Xfire客户端代码的压缩包,主要用于调用Web服务。 Xfire客户端代码是实现与Xfire服务器通信的代码库,它可能包含了多种语言的实现,如Java、C#或Python等。这些代码...

    使用Xfire构建JAVA的webService全过程(从服务端到客户端)

    4. **启动服务**:使用Xfire的`ServerFactoryBean`启动服务,监听指定的端口。 ```java ServerFactoryBean serverFactory = new ServerFactoryBean(); serverFactory.setServiceClass(CalculatorService.class); ...

    Xfire使用说明文档

    2. 连接与调用:设置必要的连接参数(如URL、端口等),然后通过代理对象调用服务方法。例如,对于上述的`MyUserService`,客户端可以创建一个`MyUserService`的实例,然后调用`hello`方法,传递参数并接收返回结果...

    xfire webservices源码

    通过研究这些示例,你可以更深入地理解XFire如何处理Web服务的生命周期,包括服务的创建、部署、调用和异常处理等。 此外,学习XFire源码有助于了解Web服务的内部工作原理,例如它如何解析和生成SOAP消息,以及如何...

    Xfire开发webservice与javaweb集成实例

    4. **启动服务**:使用Xfire的Server实例启动服务,监听特定端口等待客户端请求。 例如,我们可以创建一个名为`HelloWorldService`的接口,提供一个`sayHello`方法,然后实现这个接口,并在Xfire配置文件中声明它。...

    xfire实现webservice实例

    4. **启动XFire服务器**:使用XFire提供的启动器或Spring集成,启动服务监听指定端口。 5. **发布服务**:通过配置文件,XFire会自动扫描并发布实现的服务到指定的URL。 6. **消费Web服务**:使用XFire的客户端API...

    xfire根据WSDL生成客户端代码

    在IT行业中,Web服务是一种广泛使用的接口通信方式,它允许不同的应用程序之间进行数据交换。WSDL(Web Services Description Language)是用于定义Web服务接口的一种XML格式,它详细描述了服务的位置、服务的操作...

    xfire创建服务端客户端源码

    总的来说,Xfire提供了一个简单、高效的远程调用解决方案,尤其适合需要快速搭建服务端和客户端通信的应用场景。通过学习和实践Xfire的源码,开发者不仅可以掌握XML-RPC的基本原理,还能提升在分布式系统中的编程...

    XFire 架构的 WebService 开发

    4. **启动服务**:使用XFire的Server类启动服务,使它监听指定的端口,等待客户端请求。 5. **编写客户端**:使用XFire的Client类或者CXF的JAXWS客户端API来调用远程服务。 四、XFire与Demo示例 在提供的"Demo...

    webservice xfire spring2.0完整实例

    服务端启动后,会监听特定端口提供Web服务,客户端则根据服务地址进行调用。 - 在服务端,我们需要确保Spring配置正确并启动了Web服务。在客户端,通过代理或直接构造HTTP请求来调用服务。 5. **优点**: - ...

    xfire开发Web Service接口详解

    XFire(后被集成到Apache CXF项目)是一款轻量级的Java Web服务框架,它提供了快速、简单的方式来创建符合WS-I标准的SOAP服务。XFire的核心优势在于其直观的API和对多种协议的支持,包括SOAP、HTTP、JMS和JAX-RPC等...

    XFire返回自定义实体类实例

    XFire是Java平台上的一个开源Web服务框架,它为开发者提供了简单、高效的方式来创建和消费Web服务。本教程将深入探讨如何使用XFire来返回自定义的实体类实例。 首先,了解XFire的基本概念。XFire是Apache CXF项目的...

    Xfire Webservice的例子

    在本例中,我们将探讨Xfire Webservice与Spring框架的集成,以及如何发布和调用Web服务。 首先,让我们了解Xfire的核心功能。Xfire是Apache CXF项目的一个早期版本,它提供了SOAP(Simple Object Access Protocol)...

    XFire jar包

    XFire jar包是针对Web服务实现的一个重要组件,主要用于构建和消费SOAP(Simple Object Access...尽管现在已经有了更新的替代品,但理解XFire的工作原理和使用方式,对于理解现代Web服务框架如Apache CXF仍有很大帮助。

    XFire和Spring整合的完整示例

    -- 配置XFire的相关属性,如服务地址、端口等 --&gt; ``` 这样,XFire实例的生命周期就交由Spring管理,便于在其他Bean中注入并使用。 2. **定义Web服务** XFire通过XML配置或注解来定义Web服务。在Spring配置...

Global site tag (gtag.js) - Google Analytics