1、在服务提供者告诉interface的情况下
2、通过WSDL创建一个动态的客户端
package com.exigen.www.client;
import java.net.MalformedURLException;
import java.net.URL;
import org.codehaus.xfire.annotations.AnnotationServiceFactory;
import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import com.exigen.www.HelloWorldService;
public class HelloWorldClient {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
dynamicClientTest();
knownInterfaceClientTest();
}
/**
* 服务提供者告诉你interface
* @throws MalformedURLException
*/
public static void knownInterfaceClientTest() throws MalformedURLException{
Service serviceModel = new ObjectServiceFactory().create(HelloWorldService.class);
HelloWorldService helloWorldService = (HelloWorldService)new XFireProxyFactory().create(serviceModel,
"http://localhost:8080/XFire/services/HelloWorldService");
System.out.println(helloWorldService.sayHello());
System.out.println("============================");
Service serviceModel1 = new AnnotationServiceFactory().create(HelloWorldService.class);
HelloWorldService client = (HelloWorldService)
new XFireProxyFactory().create(serviceModel1,
"http://localhost:8080/XFire/services/HelloWorldService");
System.out.println(client.sayHello());
}
/**
* 通过WSDL创建一个动态的客户端
* @throws MalformedURLException
* @throws Exception
*/
public static void dynamicClientTest() throws MalformedURLException, Exception{
Client client = new Client(new URL("http://localhost:8080/XFire/services/HelloWorldService?wsdl"));
Object[] results = client.invoke("sayHello", new Object[]{});
System.out.println(results[0]);
System.out.println("============================");
}
}
3、使用Ant工具通过WSDL生成客户端
<?xml version="1.0"?>
<project name="wsgen" default="wsgen" basedir=".">
<path id="classpathId">
<fileset dir="./WebRoot/WEB-INF/lib">
<include name="*.jar" />
</fileset>
</path>
<taskdef classpathref="classpathId" name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask">
</taskdef>
<target name="wsgen" description="generate client">
<wsgen outputDirectory="./src/" wsdl="abc.wsdl" binding="xmlbeans" package="com.abc.p" overwrite="true" />
</target>
</project>
请注意,脚本中有一个参数binding,可以指定如下两种不同的方式:
- axb(Java Architecture for XML Binding,https://jaxb.dev.java.net/):使用此种方式时,会自动生成更多的Request和Resopnse类。
- xmlbeans,调用方式如下:
AbcServiceClient client = new AbcServiceClient();
String url = "http://localhost:8080/xfireTest/services/TestService";
String result = client.getAbcPort(url).sayHello("Robin");
分享到:
相关推荐
下面我们将详细探讨XFire以及如何使用它来创建一个Web服务客户端。 1. **XFire简介** XFire是Apache CXF项目的前身,它提供了全面的Web服务支持,包括SOAP 1.1和1.2、WSDL(Web服务描述语言)、UDDI(统一描述、...
**Apache CXF**:XFire后来被并入Apache CXF项目,CXF在XFire的基础上增加了更多功能,如支持RESTful Web服务、WS-Security、WS-Policy等,同时提供了更丰富的工具集和更好的社区支持。 **使用场景**: - 开发者...
这些库是运行XFire应用程序的基础,用户需要将它们添加到项目的类路径中以确保正确运行。 由于XFire已被Apache CXF所替代,现在的开发者更多地转向CXF来创建和使用Web服务,因为CXF提供了更广泛的特性和对新标准的...
1. **xfire-core.jar**:这是XFire的基础库,包含了主要的服务框架和运行时环境。 2. **xfire-aegis-binding.jar**:Aegis绑定模块,提供数据类型到XML的映射,反之亦然。 3. **xfire-annotations.jar**:支持使用...
《xfire创建服务端客户端源码详解》 Xfire,作为一个历史悠久的开源项目,曾经在游戏服务器通信...尽管随着时间的推移,新的通信框架如gRPC、Spring Cloud等不断涌现,但Xfire的历史价值和基础教学作用仍然不容忽视。
- **xfire-core-1.2.6.jar**:这是XFire的核心模块,提供基础的Web服务实现,包括XML编解码、服务发现、客户端调用等功能。 2. **XFire扩展模块** - **xfire-aegis-1.2.6.jar**:Aegis绑定是XFire的一种数据绑定...
在深入探讨如何使用XFire的Eclipse插件生成Web服务的客户端之前,我们先来了解一下XFire和Eclipse的基本概念,以及它们在Web服务开发中的角色。XFire是一个开源的、轻量级的Web服务框架,它支持SOAP、REST等多种协议...
这个“xfire客户端需要的jar”文件集合,显然是为了支持基于XFire的客户端应用程序运行而必需的Java类库。 首先,让我们深入了解一下XFire。XFire是Apache CXF项目的前身,它最初设计的目标是简化Web服务的开发过程...
在本教程中,我们将深入探讨如何使用Spring和XFire编写Web服务的完整配置,并通过实际案例来学习这一过程。 首先,我们需要了解Spring和XFire的基础。Spring框架提供了一个名为Spring-WS的模块,专门用于构建Web...
这份46页的PDF教程涵盖了WebService的基础概念、XFire的安装与配置,以及如何通过XFire实现WebService服务的创建、调用等关键步骤。以下是基于该教程的详细知识点解析: 1. **WebService基础**:首先,我们需要了解...
5. **服务客户端**:学习如何使用XFire生成并使用Web服务客户端,包括自动代码生成和手动编写客户端代码。这将涵盖如何调用服务、处理响应和异常。 6. **高级特性**:深入探讨XFire的高级特性,如WS-Security(Web...
同时,"webService-xfire入门"可能是详细教程或示例代码,有助于快速理解和上手XFire。 总的来说,学习和使用XFire,你需要理解Web服务的核心概念,熟悉Java编程,以及掌握XFire的API和配置。随着对XFire的深入应用...
本篇文章将深入探讨如何利用XFire在服务端和客户端之间建立Web服务通信。 一、Web服务基础 Web服务是一种基于标准的,能够跨越不同操作系统、编程语言和网络环境的通信方式。它们通常使用SOAP(Simple Object ...
- **XFire版本**:文档中提到的是XFire 1.2.6版本,这是当时的一个稳定版本,适用于本教程。 - **插件安装**:可以选择安装XFire for Eclipse插件,它可以简化XFire的配置过程,并提供诸如代码生成等功能。 #### ...
10. **xfire-generator**: 代码生成工具,可以根据WSDL文件自动生成Java客户端和服务端代码,方便快速开发。 以上这些jar包共同构成了xfire框架的基础,它们相互协作,为开发者提供了强大而全面的Web服务开发环境。...
对于短信接口,我们可以使用XFire的ClientProxyFactoryBean来创建一个客户端代理,然后通过这个代理调用服务。以下是一个使用XFire的示例: ```java import org.apache.cxf.frontend.ClientProxyFactoryBean; // ...
这个压缩包包含了一系列的JAR文件和其他必要的资源,它们是开发和运行XFire服务的基础。解压缩后,你会看到诸如xfire-核心库、xfire-xmlbeans库、xfire-aegis库等文件,这些库分别提供了XFire的核心功能、XMLBeans...
3. 易于测试:XFire提供了模拟客户端工具,方便服务端的单元测试和集成测试。 4. 与其他技术结合:如Spring框架,提高应用的可维护性和扩展性。 四、总结 XFire作为一款成熟的Web服务框架,尽管现在已经被更先进...
1. xfire-core:这是XFire的核心库,包含了处理Web服务请求和响应的基础组件,如XML解析、协议处理等。 2. xfire-aegis:Aegis是XFire的一个子项目,提供了对象到XML的绑定,允许将Java对象直接映射为SOAP消息,...
8. **xfire-http-client.jar**:这个jar包包含了对HTTP客户端的支持,使XFire能够通过HTTP/HTTPS协议进行服务调用。 9. **xfire-ws-security.jar**:提供了Web服务安全相关的功能,如WS-Security标准的支持,用于...