cxf 解析调用外部soap类型的webservice

本文详细介绍了如何使用Apache CXF的wsdl2java工具生成客户端代码,调用外部SOAP类型的Web Service。从获取WSDL路径,下载配置CXF工具,到生成代码的命令行参数,再到遇到的问题及解决办法,包括依赖版本问题,ObjectFactory冲突,生命周期方法异常,endpoint地址不支持等常见问题。最后,给出成功案例展示了如何进行身份验证并调用服务。
摘要由CSDN通过智能技术生成

使用cxf的wsdl2java调用外部webservice提供的wsdl的步骤,使用过程中的问题与注意事项也做了相关总结。


一、可用的请求wsdl的webservice路径

服务器提供一个外部可调用的webservice的wsdl路径,在浏览器中可直接反问道wsdl文件,在soapUI中可测试每个请求的有效的路径(该webservice是已发布可工外部调用的有效请求)


二、下载配置Apache CXF提供的生成Client的工具

1.下载:

 http://cxf.apache.org/download.html官网 下载apache-cxf-3.0.10.zip(或者别的压缩包,建议使用较新的工具包),将下载到的zip解压到本地某个文件下,如我解压到D盘的tool文件夹下

2.配置环境变量:

将cxf所在路径配置到环境变量中,如CXF_HOME=D:\tools\apache-cxf-3.0.10,在Path变量中添加;%CXF_HOME%\bin(讲cxf的bin目录配置到path中)。

运行cmd dos命令,输入wsdl2java -v,输出为wsdl2java - Apache CXF 3.0.10这种版本信息表示安装配置成功,否则则可能安装失败


三、使用wsdl2java的命令生成客户端代码

1,简单使用命令生成代码到某目录下:

可在本地手动切换到需要生成代码的目录下,在路径中输入cmd回车即转到该目录下——》wsdl2java  -p '包名'  -encoding UTF-8 https://XXX.XX.XXXService?wsdl 回车即可生成

-p 生成代码放置的包,命令中建议加上,方便直接放到项目目录下,默认的包可能不符java包的命名规则(如可能生成以java、org等包)

-encoding 建议加上,不指定编码可能导致生成的文件产生编码冲突的错误而无法直接使用

-autoNameResolution当有两个或者多个wsdl需要生成到同一个目录下时,再次运行命令行需加入此参数,如果wsdl中有相似相同的方法名或者引用了相同名称的类会提示“具有相同名称 "XXXX" 的类/接口已在使用。请使用类定制设置来解决此冲突。”,无法正常生成,在wsdl2java的命令中加上这段标示,标示每个wsdl生成类时都会生成一个唯一的Number,让同名的类也可生成。注意事项或出现ObjectFactory的错误时参考下面使用难点中的2即可解决。

四、使用难点

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值