关于wsdl2java命令生成客户端及动态创建客户端

java webservice 简单发布、动态创建webservice 客户端 、wsdl4j解析 wsdl 文档获得接口名列表 wsdl文档阅读参考https://www.cnblogs.com/yzw23333/p/7245104.html 1.java自带jdk发布一个简单的webservice,仅供测试使用,非常简单 import javax.jws.WebParam; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService... 阅读详情


写本文目的只有一个:总结做笔记,以便日后方便查阅,都是个人经验,希望对大家有帮助。

如有不对的地方请各位指出,多多包涵,别拍砖哦。


1、网上关于使用wsdl2java生成CXF客户端的例子已经很多了,大家随便一搜就有大堆了,然后你看着看着慢慢就会发现,

很多都是Ctrl+C和Ctrl+V,重点不突出,所以我只说关键要点,不作详细代码解释(度娘,谷哥可以帮到你)。

其实要使用wsdl2java自动生成代码,关键就是要配好环境变量,然后就是输入wsdl2java的那条生成代码的命令。环境变

量没配好,什么自动生成的就无从谈起。


     CXF下载链接:http://cxf.apache.org/download.html

     使用apache-cxf-2.7为例,下面的“x:\apache-cxf-2.7”为你从官网下载的cxf包解压的目录。

     以下这些包是需要导入的,不然就报有ClassNotFoundException等等错误。

     ①配置CLASSPATH

     x:\apache-cxf-2.7\lib


     ②
配置PATH

       x:\apache-cxf-2.7\bin


      ③新建一个环境变量

       名:CXF_HOME

       值:x:\apache-cxf-2.7


环境变量配好后,就是通过CMD输入命令: 

wsdl2java -p com.wsx.xxx -d d:\src -all  http://xxx.demox.com/xxx?wsdl



http://xxx.demox.com/xxx?wsdl 这个URL对应的就是wsdl文件访问地址


参数说明:

-p 也就是package 对应java中的包

-d 输入目录,生成.java文件会在该目录,会自动添加-p参数配置的包路径,“src”这个文件夹要先创建好

-client 生成客户端测试web service的代码.
-server 生成服务器启动web  service的代码.
-impl 生成web service的实现代码.
-all 生成上面-client -server -impl -ant 对应的所有文件.


2、JaxWsProxyFactoryBean动态调用
        //创建动态工厂
         JaxWsDynamicClientFactory dynamicClient = JaxWsDynamicClientFactory.newInstance();  
        // 设置WebService地址
        Client client = dynamicClient.createClient("http://xxx.demox.com/xxx?wsdl");  
        try{
            //这样就执行了“query”这个方法,传入的参数分别为参数一,参数二。
            //至于要执行什么方法,传入什么参数类型,传多少个参数,得看你服务器的接口是怎么定义的。
            Object[] rspArr = client.invoke("query", 参数一, 参数二); 

            //一:如果你服务端返回的是个单一的String类型,而不是对象类型,可以这样:
            //String str = rspArr[0]; 

            //二:如果你的WebServcie服务端返回的是一个对象类型,则需要再解析:
            //这里“getProductName”是我WebService服务端返回一个Bean里的一个get的方法
            //最后得到的是产品名称
            Method prductNameMethod = rspArr[0].getClass().getMethod("getProductName");
            Object prductNameObj = prductNameMethod.invoke(rspArr[0]); 
            String productName = (String)prductNameObj;
        }catch(Exception e){
             e.printStrackTrace;
        }


个人总结:

      使用wsdl2java生成CXF的客户端代码全面,但是如果服务端接口有变动的话,则需要重新生成,维护有点麻烦。而本人

更趋向使用动态调用,和wsdl2java的自动生成相比,文件数量及代码量会少很多且更灵活。事情没有绝对,哪种方法好,就

见仁见智了,不管黑猫白猫,抓到老鼠就是好猫。

      需要一提的是,若你要使用动态调用的话,包名一定并且必须要和服务器端接口所在的包名一致,包名不一致的话,如果

是String,int等类型还好,但是如果是List,Map等复杂类型的时候会报错,是解析不了的。

        

Java中WSDL解析的完整实践指南 Apache CXF(从前称为 Celtix 和 XFire)是一个全功能的开源服务框架,它使得Web服务的创建和消费变得简单。CXF的核心特点包括其服务总线架构,支持多种传输协议和数据格式,以及对多种行业标准的支持,特别是SOAP和WSDL。CXF的关键组件包括::用于配置和启动Web服务。:用于处理服务调用的底层细节。:处理XML和Java对象之间的映射。:提供对Java Business Integration的支持。 阅读详情

相关推荐

axis2根据wsdl生成java客户端代码

axis2根据wsdl生成java客户端代码 D:\Software\axis2-1.6.2\bin>wsdl2java.bat -uri http://10.33.30.216:9099/facs/services/ResourceSynchroWebService?wsdl -o E:\wsdloutput -p com.util wsdl2java.bat -uri http://10.11.165.166/services/VehicleInfoService?wsdl -o E:\wsdloutput -p com.hikvision.webservice.component

JaxWsDynamicClientFactory 跳过证书验证

【代码】JaxWsDynamicClientFactory 跳过证书验证。

weixin_43861630的博客 1197

Excel药品说明书数据库:从零开始搭建医药数据查询系统(附完整模板)

本文详细介绍了如何从零开始搭建Excel药品说明书数据库,提供完整的医药数据查询系统模板。涵盖数据库架构设计、数据清洗标准化、智能查询系统搭建及维护优化,帮助医药从业者高效管理药品信息,提升查询速度和准确性。

weixin_28327051的博客 233

使用wsdl2java编写webservice客户端

1、安装apache-cxf插件,使用wsdl2java命令。 https://blog.youkuaiyun.com/csdn_gia/article/details/54881369 1、获取wsdl文件,生成一个已wsdl为后缀名的文件 2、cmd进入编辑环境,进入项目的项目的java文件夹下面 3、运行wsdl命令,生成java文件 wsdl2java -encoding utf-8 -p ...

熊浪的博客 4829

从零到一:NI USB-8506 LIN通讯的驱动安装与硬件调试全攻略

本文详细介绍了NI USB-8506 LIN通讯设备的驱动安装与硬件调试全流程,包括硬件准备、驱动下载与配置、NI MAX设置及常见问题解决方案。通过实战应用与性能优化技巧,帮助用户快速掌握LIN通讯技术,适用于车载数据记录和自动化测试等场景。

weixin_28273593的博客 924

通达信筹码分布主图源码分享

NOTEXT下区成本:IF(CURRBARSCOUNT<=CONST(XA_26+1),CONST(IF(1,XA_94,XA_94)),DRAWNULL),DOTLINE,COLORYELLOW;NOTEXT上区成本:IF(CURRBARSCOUNT<=CONST(XA_26+1),CONST(IF(1,XA_81,XA_81)),DRAWNULL),DOTLINE,COLORRED;FFG1:DRAWBAND(C线,RGB(255,0,0),XA_33,RGB(255,0,0));

zhibiaogong的博客 3357

WebService通道安全

一、验证用户名密码 基础接口实现参考WebService接口实现 1、定义拦截器 package com.bw.integrator.config.webSerivce; import org.apache.cxf.binding.soap.SoapMessage; import org.apache.cxf.binding.soap.saaj.SAAJInInterceptor; import org.apache.cxf.interceptor.Fault; import org.apac

qq_37634156的博客 2608

从零开始搭建属于自己的语音识别API服务器(ASRT开源项目)

材料准备 云服务器 (本人使用的的是阿里云服务器 Ubuntu(Linux操作系统)) 环境搭建 1. Python 3.7 话不多说直接上代码 sudo su yum -y install git yum -y install gcc yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-deve

zhi_qian的博客 5647

axis2 生成服务端与客户端与客户端代码

服务端: 服务端生成命令:见后面 代码接口需要自己实现:后缀为Skeleton的类需要自己实现 所需jar 改动:需要改services.xml里的useOriginalwsdl为false,或将wsdl放在同级目录 各文件防止位置 web.xml: <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis...

qq_33950777的博客 3407

Android应用加固脱壳实战:从爱加密原理到Frida内存Dump与修复

在移动应用安全领域,代码加固与动态加载是保护核心逻辑的关键技术。其原理在于通过修改应用启动流程,将原始DEX加密隐藏,并注入包含解密逻辑的壳DEX,实现运行时动态加载。这项技术的核心价值在于防止应用被逆向分析、二次打包或恶意篡改,广泛应用于金融、游戏等高安全要求场景。对于安全研究、漏洞挖掘或历史版本审计,掌握脱壳技能至关重要。本文聚焦于**爱加密**等主流加固方案,深入探讨如何利用**Frida**框架在内存中精准捕获解密后的DEX数据,并解决脱壳后常见的签名校验等运行问题,提供一套从原理到实践的完整攻防思

weixin_28716443的博客 489

维纳滤波和卡尔曼滤波

本文的主要内容是维纳滤波和卡尔曼滤波的介绍,包含匹配滤波器、维纳滤波器、维纳预测、卡尔曼滤波等内容。

西岸贤 9519

webservice 客户端代码生成之 wsdl2java与wsimport

webservice 客户端代码生成之wsdl2java与wsimport

Nemo 601

【深度学习新浪潮】Qwen门控注意力斩获NeurIPS 2025最佳论文!技术解析与代码实现

Qwen团队的门控注意力机制获得NeurIPS 2025最佳论文,不仅是中国AI研究的重大突破,更是大模型架构创新的重要里程碑。这项研究证明,通过巧妙的架构设计,可以在不显著增加计算成本的前提下,大幅提升模型性能。正如论文所展示的,用一个极其简单的改动,同时解决了Transformer架构中的多个核心问题,这正是优秀研究的价值所在。该技术已成功应用于Qwen3大模型,为通义千问系列产品的性能提升提供了坚实的技术支撑。轻量化大模型设计多模态统一架构专用领域大模型优化边缘计算场景部署。

专注:太空算力、AI infra、异构调度、大模型成本工程 569

XFire构建web service客户端的五种方式

本文主要源于先前看到的一篇文章,为了自己以后查看方便也就转载过来了 原文链接:http://blog.youkuaiyun.com/jadyer/article/details/6082948 另外还有第四种,第五种方法,是从别处看到的 ,在本文最后和大家分享一下

Francis Note 1728

YOLOv9改进策略 | Conv篇 | 2024最新ECCV最新大感受野的小波卷积WTConv助力YOLOv9有效涨点

本文给大家带来的改进机制是一种新的卷积层,称为WTConv(小波卷积层),它利用小波变换(WT)来解决卷积神经网络(CNN)在实现大感受野时遇到的过度参数化问题。WTConv的主要目的是通过对输入数据的不同频率带进行处理,使CNN能够更有效地捕捉局部和全局特征,WTConv成功解决了CNN在感受野扩展中的参数膨胀问题,提供了一种更为高效、鲁棒且易于集成的卷积层解决方案,我将其用于二次创新YOLOv9中的RepNCSPELAN4机制可以减少一定的参数量和计算量,达到一个可观的轻量化作用。

Snu77的博客 1543

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JAVA使用XFire开发Web Service客户端几种调用方式

一、服务提供者告诉你interface,你可以使用如下三种方式来开发:  YourService即是服务提供者告诉给你的一个interface(当然,也可以根据WSDL的定义,自己定义一个同样的interface)。  1、简单的方式 Service serviceModel = new ObjectServiceFactory().create(YourService.class);

u014386474的博客 2675

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

使用CXF调用WSDL(一)

简介时隔多年,再次遇到需要调用WebService的业务,对方给予的wsdl说明文档还是内网的链接,并且设有基础访问权限,即在浏览器打开wsdl链接时需要输入【用户名+密码】登录后方可查看wsdl文档,这需要设置代理(我使用putty完成了代理),本文只记录使用org.apache.cxf调用wsdl的过程。

cm777的博客 2434

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

CXF 生成客户端报错。

在webservice生成客户端时,由于存在同名方法,导致在生成对应的java类和Response类重现重名错误,错误信息如下:WSDLToJava Error: Thrown by JAXB: A class/interface with the same name解决办法 在使用wsdl2java命令时加上参数  -autoNameResolution 参考文章:http://joy2ever

1306

xfire的客户端开发

虽然XFire现在已经被CXF取代,但在现在已经开发的项目中,还是有不少使用XFire来实现Web Service的。今天来谈谈用XFire开发客户端。本文也将继续使用上一篇文章的服务端来做为服务端。使用XFire开发Web Service客户端分为如下两大类:一、服务提供者告诉你interface,你可以使用如下三种方式来开发:YourService即是服务提供者告诉给你的一个interface

shazhenhua的专栏 3813

CXF 调用方式——动态创建客户端(调用稳定版本号为2.7.18)

今天用动态创建客户端的方式调用webservice,报了这样一个错: 2017-01-05 20:51:46,029 DEBUG main org.apache.cxf.common.logging.LogUtils - Using org.apache.cxf.common.logging.Log4jLogger for logging. 2017-01-05 20:51:46,168 ...

weixin_30698527的博客 1132

使用XFire开发Web Service客户端完整入门教程

然XFire现在已经被CXF取代,但在现在已经开发的项目中,还是有不少使用XFire来实现Web Service的。前段时间,我写的使用XFire开发Web Service服务端的文章《XFire完整入门教程》受到了大家的好评,给大家带来了方便,很是高兴。今天来谈谈用XFire开发客户端   本文也将继续使用上一篇文章的服务端来做为服务端。使用XFire开发Web Service客户端分为如下

lanchengxiaoxiao的专栏 983

SOAP得Axis2的使用(一)create client code

SOAP得Axis2的使用(一)create client code 首页 http://ws.apache.org/axis2/ create client guide http://ws.apache.org/axis2/1_5_1/userguide-creatingclients.html#createclients 拷贝下载的axis2到工作目录,配置 AXIS2...

快马扬鞭须努力! 264

CXF ws client, dynamic endpoint and loading WSDL from the classpath

CXF ws client, dynamic endpoint and loading WSDL from the classpath Posted on February 26, 2009 by joachim 21 CommentsLeave a comment When you allow CXF to create the client code for a

lionzl的专栏 1647

Axis2动态创建webservice

Axis2创建WebService实例 博客分类: Java综合 WebServiceTomcatApacheWebXML    一、Axis2的下载和安装      1.可从http://ws.apache.org/axis2/ 下载Axis2的最新版本:       可以下载如下两个zip包:       axis2-1.5.4-bin.zip     

小田坎儿 1171
下一篇: 45 个非常有用的 Oracle 查询语句
DancingMarks
博客等级 码龄17年 5粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值