CXF入门教程(2) -- 第一个客户端

CXF入门教程(3) -- webService客户端开发步骤详解 <!-- p {text-indent:2em} --> 教程(2)依据教程(1)中提供的WSDL契约,对其发布的webService创建了一个简单的客户端;本文详细介绍一下webService客户端开发的一般步骤。 生成Stub代码 在CXF中,开发一个service消费者(或客户端)的起点是一个WSDL契约,连同端口类型、绑定以及service定义。然后我们就 阅读详情

文中对应的代码已经上传,与教程(1)中的service相对应。为调试方便,将service和client都放在了同一个工程中,不过是在不同的包中;本文对应的两个基本客户端在com.neareast.test.cxf.client.consumer包中,服务端ServiceTest类在com.neareast.test.cxf.server.service包中。代码地址如下:

http://download.youkuaiyun.com/detail/neareast/4411870

最常见的情境是,我们有一个服务的WSDL;无论这个服务是不是我们自己维护的,我们都可以从这个WSDL文件来生成客户端,包括一个强类型的接口,并通过接口来与服务进行交互。

使用WSDL2Java工具,可以通过WSDL生成JAX-WS客户端。使用WSDL2java有以下三种方法:

要深入获取更多信息,可以参阅 Developing a JAX-WS consumer 一文或发型包中的示例程序。

Eclipse和Maven的插件最终应该还是调用WSDL2Java命令来实现的。这里我们使用上一篇中发布的服务,直接在控制台使用 wsdl2java http://localhost:9000/helloWorld?wsdl 命令,即可在命令所在目录下( 如笔者在 apache-cxf-2.6.1包的bin目录下调用wsdl2java 命令,生成的类文件就在这个目录下),生成与WSDL中的targetNamespace相对应的包路径,将相应的类放到该目录下,客户端直接调用这些类即可;比较无奈的是,生成的代码居然是ANSI格式的……

然而,生成的HelloWorld类报错,如HelloWorld方法的super(WSDL_LOCATION, SERVICE, features);这行报错,原因是javax.xml.ws.Service中缺少Service(URL, QName, WebServiceFeature[]) 构造方法。我们引入的geronimo-jaxws_2.2_spec-1.1.jar包里,提供了新版本的Service类,但是需要进行endorse才能够替换掉jre自带的Service类。为尽量较少以后移植的麻烦,我们可以根据注释中的提示指定-frontend参数,使用JAX-WS 2.1兼容模式重新生成所有的类,顺便用-p参数指定我们需要的命名空间:

wsdl2java -p com.neareast.test.cxf.client.WSDL2Java -frontend jaxws21 http://localhost:9000/helloWorld?wsdl

生成的类如下图所示;其中HelloWorld类用来启动对服务的监听,IHelloWorld类就是调用服务的接口。

一旦生成了客户端,典型的用法如下:

public class BasicClient {
	public static void main(String[] args){
		HelloWorld server = new HelloWorld();
		IHelloWorld hello = server.getHelloWorldImplPort();

		String result = hello.sayHi("East");
		System.out.println(result);
		
		User user = new User();
		user.setName("East");
		System.out.println(hello.sayHiToUser(user));
		
		System.out.println("All the users are: ");
		for(IdentifiedUser u:hello.getUsers().getEntry()){
			System.out.println( u.getUser().getName() );
		}
	}
}

至此,一个简单的webService客户端已经完成了。

JAX-WS代理

除了使用使用wsdl2java 直接生成客户端,我们也可以使用 Service.create 来生成服务实例,下面的代码展示了这一过程: 

        URL url = null;
        try {
            url = new URL("http://localhost:9000/helloWorld?wsdl");
        } catch (MalformedURLException e) {
            java.util.logging.Logger.getLogger(HelloWorld.class.getName())
                .log(java.util.logging.Level.INFO, 
                     "Can not initialize the default wsdl from {0}", "http://localhost:9000/helloWorld?wsdl");
        }
        WSDL_LOCATION = url;

        Service service = Service.create(WSDL_LOCATION, SERVICE_NAME);
        
        IHelloWorld hw = service.getPort(IHelloWorld.class);
        System.out.println(hw.sayHi("World"));

转载自NearEast

cxf发布webservice简介 及 wsdl2java生成客户端代码 下面我们简要介绍如何通过cxf框架发布webservice 首先新建一个Java project为cxfmodel_server 首先去官网下载cxf:http://cxf.apache.org/download.html 下面我们就开始使用 (1)发布服务 第一步:新建需要发布的接口HelloWorld.java,里面包含一个sayHello方法,其次写出这个接口的实现类实 阅读详情

相关推荐

Proxy实现CXF客户端

本篇博客实现了基于动态代理的CXF客户端,通过代理服务端的接口,从而可以在客户端直接调用服务接口的方法。 本次实验实现GET、PUT、POST等HTTP请求,同时实现了如何向服务端发送数据以及读取来自服务端的数据。

erwinwfeqwdsa的博客 2224

在IDEA中生成webservice客户端

一、前言 第一次接触webservice,从采坑到采坑,算是了解了一些,明白了一些;生成webservice的方法有很多种(实现方式有CXF、Axis等等),webservice 是一种基于web的应用程序,可以使用多种编程语言实现。JAVA 程序猿当然选择最快,最有效的方法。 二、使用IDEA创建webservice客户端 我认为通过IDE生成是有效的,我的目的只是能够生成且调用。目的----方...

生命的意义在于创造和毁灭 1万+

cxf 根据wsdl文件生成客户端代码

1.先去官网下载cxf (apache-cxf-3.1.17.zip) http://cxf.apache.org/download.html 2.解压压缩包 进入bin目录下 3.使用wsdl2java命令生产客户端代码 执行:wsdl2java -p com.example.demo.client -d D:\com\example\demo\client -all D:\com...

weixin_40800533的博客 6488

java使用CXF生成客户端实现调用webService接口

进入下载好的Apache CXF的bin目录下输入cmd命令在黑窗口输入解析wsdl的命令。1.使用cxf框架生成webservice客户端代码 首先需要下载Apache CXF。下载后配置系统环境变量,在cmd中输入 wsdl2java -h命令测试是否配置成功。wsimport是JDK自带的解析wsdl文件生成本地客户端代码的工具。把解析后生成的客户端代码,放在项目目录下.-s . .为当前目录。

T1aN_的博客 3772

CXF入门教程(一)

CXF 简介 Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Tra...

猿小白的博客 1万+

CXF Web服务客户端开发实战指南

Apache CXF是一个开源服务框架,主要用于构建和开发Web服务,它支持SOAP和REST两种架构风格。CXF的诞生旨在简化Web服务的开发,降低从基础服务到完整企业服务的复杂度,同时提供灵活的配置选项和插件支持。Web服务是一种基于Web(互联网)的服务,它使用特定的通信协议,如HTTP或HTTPS,进行远程过程调用(RPC)。它允许不同的系统和设备在互联网上相互通信,并可以跨越不同的操作系统和编程语言进行交互。

weixin_36303807的博客 1191

cxf客户端

按下面步骤逐步搭建cxf客户端代码: 1、下载cxf 2、在bin目录下生成客户端存根:wsdl2java -encoding utf-8 http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl 3、主要是使用上面存根的接口类,单做本地代码来使用, JaxWsProxyFactoryBea...

hwbswxfxzy的博客 1308

CXF 一个完整的webService(整合客户端和服务端)

CXF 一个完整的webService(整合客户端和服务端),自己开发,自己测试,完全有效,整合集成了客户端和服务端双向的工能。

WebService—CXF—实现接口发布和客户端调用

(一)接口发布的几种方式 定义接口: @WebService(targetNamespace="http://www.itfad.net/queryUser") public interface IQueryUser { String query(@WebParam(name = "user") UserInfo user); } 实现类: @WebService(endpointInterface="net.itfad.services.IQueryUser")

lgxzzz的博客 2812

SiC MOSFET驱动设计实战:从特性解析到电路优化

本文深入解析SiC MOSFET的核心特性及其驱动电路设计要点,涵盖高温稳定性、快速开关能力等关键特性,并提供驱动电压配置、电流能力计算、布局优化等实用方案。特别针对第三代电力电子半导体SiC MOSFET的驱动要求,分享STGAP1AS等典型驱动方案的应用技巧,助力工程师解决高频应用中的EMI和热管理挑战。

weixin_29230865的博客 366

Java对接(BSC)币安链 | BNB与BEP20的开发实践(三)水龙头 WEB3

这一节我们讲一个币安测试链如何获取到BNB、USDT等BEP20数字货币(水龙头)来让我们前期测试开发。如图:我们将创建的地址填入相应输入框,来获取到测试BNB以及其他BEP20数字币。发币可能需要交易等待,请耐心等待即可,交易完成后,币会到达您的地址内。上一节我们用代码来实现BNB转账、BEP20转账、链上交易监控。2.MetaMask(小狐狸)浏览器插件 🪜。使用EDGE浏览器可以在浏览器直接打开。使用Chrome浏览器,请使用🪜打开。基本工作就绪后,即可进行开发测试。3. 测试区块链浏览器 🪜。

大猩猩的专栏 2790

CXF生成客户端代码

CXF生成客户端代码下载CXF解压到本地,配置环境变量生成客户端代码客户端调用生成的代码 下载CXF http://cxf.apache.org/download.html 下载最新版本:apache-cxf-3.3.2.zip 解压到本地,配置环境变量 配置path 生成客户端代码 D:\tmp\cc>wsdl2java http://localhost:8080/cxf02/ws/...

【轰炸机】的博客 720

告别抓瞎!手把手教你用Keysight Infinium和M8040完成PCIe 5.0 TX/RX信号完整性测试

本文详细介绍了如何使用Keysight Infinium示波器和M8040误码仪完成PCIe 5.0 TX/RX信号完整性测试。从测试前的设备准备、软件配置到具体的TX信号测试步骤和RX容限测试实战,提供了全面的操作指南和常见问题解决方案,帮助工程师高效完成PCIe 5.0合规性测试。

weixin_30911451的博客 503

使用cxf客户端生成java代码并调用

下载CXF客户端 进入Apache CXF的官网(http://cxf.apache.org/),进入下载页面 下载的首页会列出几个版本,如果要下载以前的版本,就滑到下载页面的底部----Previous releases标题下,这里官网提供了两个链接,小编英文比较菜,谷歌翻译过来是费孵化器发布以及孵化器发布,不清楚区别在哪里,但是我这里选择的是非孵化器下载链接(http://arch...

Min_Monk的博客 7682

基于yolo11的BGA图像目标检测

15.YOLOv8的n/s版本(如YOLOv8n-1280),或通过TensorRT量化压缩模型。3.使用自适应batch_size(如根据GPU显存动态调整),推荐16-32。为采集分辨率整数倍(如原图2592×1944,训练时缩放为640×480),保持宽高比。14.采用余弦退火学习率(cos_lr)和早停(patience=50),防止过拟合。1.模型标注后,少量标注全部人工校验,大量数据抽检,部分人工检验。13.部署模型后持续收集困难样本(如模棱两可的预测结果),定期迭代更新模型。

qq_47798402的博客 1206

OpenClaw 2026.3.13 踩坑实录:飞书HTTP协议降级Bug与多版本回归问题汇总

摘要:OpenClaw v2026.3.13存在多个严重回归问题,包括飞书API调用协议意外降级为HTTP导致连接失败(#46100)、本地Gateway诊断矛盾(#45504)及设备配对CLI命令失效等。该版本发布流程本身也存在异常,被迫以v2026.3.13-1标签重新发布。建议飞书用户回退至v2026.3.8稳定版,其他用户谨慎升级。本文详细记录了各Bug现象、影响范围及临时解决方案,并梳理了飞书通道的"多版本回归史",指出其根源在于架构变迁和测试覆盖不足。最后提供了包含配置备份、

Maynor的博客 870

CXF开发WebService客户端

 开发必备1.apache-cxf-2.2.62.spring-ws-1.5.83.eclipse-jee-galileo-SR1-win32 开发步骤:一、新建一个普通的java工程,名字叫WebService_CXF_Client二、导入apache-cxf-2.2.6 及 spring-ws-1.5.8 下的jar包三、启动《CXF开发WebService

yyb_gz的专栏 6205

大数据领域数据服务的数据分析工具推荐

你有没有过这样的经历?——领导说“帮我分析一下上个月的销量”,你打开Excel却发现数据有100万行,电脑直接卡死;或者想实时知道“现在直播间的观众在买什么”,却不知道用什么工具处理每秒10万条的点击数据。本文的目的:帮你解决“选什么工具做什么事”的问题,覆盖大数据服务的全流程(采集→存储→处理→分析→可视化),推荐高频、实用、易上手的工具,并讲清楚它们的“适用场景”和“优缺点”。范围。

大数据洞察的博客 1932

java cxf 客户端调用_CXF客户端调用N种方式

方式一:配置CXF环境变量,用wsdl2java工具自动产生代码。项目结构目录如下:其中com.yq.webservice下面的所有的java类都是wsdl2java工具自动产生的。JaxWsProxyFactoryBean factoryBean = newJaxWsProxyFactoryBean();factoryBean.getInInterceptors().add(newLogging...

weixin_35859737的博客 1635

老 MacBook 部署 OpenClaw:比 Windows 更稳定

老款 MacBook 在运行 OpenClaw 时,Linux 系统相比 Windows 系统具有更好的稳定性和性能。本文将从多个维度对比 Linux 和 Windows 在老款 MacBook 上运行 OpenClaw 的表现,帮助您选择更合适的操作系统。

一键难忘的博客 2096

Trae 保姆级使用指南,零基础小白也能实现编程。

Trae 使用指南 Trae AI 使用 零基础编程 满血版 DeepSeek-R1&V3 AI IDE 深度理解中文开发场景 傻瓜式编程 编程入门 开发入门

Mr.L-OAM的博客 5818

CXF之动态客户端实例

通常创建一个web服务的客户端包括SEI的java接口和客户端输入输出应用的一些java类,这不总是可取的或实用的。 CXF支持不同的选择,允许一个应用连接到服务而不使用SEI和一些数据类。本页面介绍CXF的动态客户端工具,有了动态客户端,CXF就可以在运行时生成SEI和一些Bean类,也允许你通过API调用操作,即采取对象或使用反射来应用代理。

fhd001的专栏 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

CXF生成WebService客户端代码

CXF生成WebService客户端代码 下载Apache CXF包 首先下载Apache CXF的组件,下载地址:http://cxf.apache.org/download.html,注意版本。 解压下载的apache-cxf.zip 至某一目录,例如D:\tool\apache-cxf-3.2.0; 配置环境变量, 增加系统环境变量CXF_HOME=D:\tool\apache-cxf-3.2.0; 在path后面追加配置 %CXF_HOME%/bin; 在cmd命令中输入执行wsdl2java,如

南朝雨 1475

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: CXF入门教程(1) -- 第一个webService
下一篇: CXF入门教程(4) -- 设置上下文连接属性
changpingchen
博客等级 码龄16年 7粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值