webservice调用对接第三方系统

#webservice调用对接第三方系统#

最近接到一个任务,需要对接第三方数据,第三方提供对接方式的是通过webservice调用,webservice调用有好几种方式,具体可以自行了解,我选择的是通过wsdl文件自动生成客户端代码对接。

第一步:获取wsdl文件

既然是通过wsdl文件生成客户端代码的方式,那么首先就需要获得wsdl文件。wsdl文件去哪获取呢?

一般第三方会提供一个 wsdl 文件的访问地址,拿获取天气预报的访问地址来说格式如:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

ps:可能只给了前面一节http://www.webxml.com.cn/WebServices/WeatherWebService.asmx,一般自行把"?wsdl"拼接上即可,或者直接访问http://www.webxml.com.cn/WebServices/WeatherWebService.asmx,里面也会有提示

成功访问的话会进入到如下格式页面

这时可以ctrl+s保存或者查看源代码再ctrl+s保存,保存的时候后缀可以是xml或者wsdl,但这里建议是wsdl,xml和wsdl在第二步生成客户端代码的时候生成的代码会有区别,我用xml生成的代码在调用的时候会失败,后面换成wsdl重新生成的

第二步:通过wsdl文件自动生成客户端代码

通过wsimport命令生成客户端代码

命令:wsimport -s ./ -p com.test.tempuri .\view-XRHotel_WS__wsdl.wsdl

-s:指的是生成java文件,如果不加上那么只会生成class文件

./:指的是生成到当前目录

com.test.tempuri:指的是生成的类文件引用的包名

.\view-XRHotel_WS__wsdl.wsdl:则是指定根据哪个wsdl文件生成客户端代码

注意:第三方提供的wsdl文件里的ip不一定全是公网ip或者域名,如果内容里有自己访问不到的内网ip在生成的时候就会提示连接失败,此时需要根据对应的提示将其替换掉。当然也有可能有其它异常,根据提示一一修改就好了,下载下来的wsdl文件不一定是直接可用的

第三步:调用

在生成的文件中一般会有一个xxxService的service类,以及一个xxxServiceSoap的类,而service中会有一个getxxxxServiceSoap的方法可以获取到xxxxServiceSoap,这些在调用时需要用到

java 复制代码
public static void main(String[] args) throws Exception {
    // new出xxxService对象
    XXXService service = new XXXService();
    // 通过xxxService对象的getXXXXServiceSoap()方法获取XXXServiceSoap
    XXXServiceSoap soap = service.getXXXXServiceSoap();
    // XXXServiceSoap会有各种第三方开放的方法,调用传入对应参数
    String result = soap.house("2023-08-28");
    System.out.println("Result: " + result);
}
相关推荐
开发者小天4 小时前
python中For Loop的用法
java·服务器·python
flushmeteor4 小时前
JDK源码-基础类-String
java·开发语言
毕设源码-钟学长5 小时前
【开题答辩全过程】以 基于ssm的空中停车场管理系统为例,包含答辩的问题和答案
java
不愿是过客5 小时前
java实战干货——长方法深递归
java
小北方城市网6 小时前
Redis 分布式锁高可用实现:从原理到生产级落地
java·前端·javascript·spring boot·redis·分布式·wpf
六义义7 小时前
java基础十二
java·数据结构·算法
毕设源码-钟学长8 小时前
【开题答辩全过程】以 基于SpringBoot的智能书城推荐系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
笨手笨脚の8 小时前
深入理解 Java 虚拟机-03 垃圾收集
java·jvm·垃圾回收·标记清除·标记复制·标记整理
莫问前路漫漫8 小时前
WinMerge v2.16.41 中文绿色版深度解析:文件对比与合并的全能工具
java·开发语言·python·jdk·ai编程
九皇叔叔8 小时前
【03】SpringBoot3 MybatisPlus BaseMapper 源码分析
java·开发语言·mybatis·mybatis plus