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);
}
相关推荐
tellmewhoisi14 分钟前
java8 List常用基本操作(去重,排序,转换等)
java·list
都叫我大帅哥43 分钟前
TOGAF应用架构阶段全解析:从理论到Java代码实战
java
Amagi.1 小时前
Java设计模式-建造者模式
java·设计模式·建造者模式
EmpressBoost1 小时前
谷粒商城170缓存序列化报错
java·spring·缓存
fouryears_234171 小时前
@PathVariable与@RequestParam的区别
java·spring·mvc·springboot
wxjlkh1 小时前
powershell 批量测试ip 端口 脚本
java·服务器·前端
萌新小白的逆袭2 小时前
《Maven 核心基础笔记(第一天)》
java·开发语言·spring
一念&2 小时前
Java泛型
java
掉鱼的猫2 小时前
Solon 整合 LiteFlow 规则引擎:概念与实战
java·workflow
她说..2 小时前
Stream API流学习总结
java