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);
}
相关推荐
The_Ticker5 分钟前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
大数据编程之光27 分钟前
Flink Standalone集群模式安装部署全攻略
java·大数据·开发语言·面试·flink
爪哇学长41 分钟前
双指针算法详解:原理、应用场景及代码示例
java·数据结构·算法
ExiFengs1 小时前
实际项目Java1.8流处理, Optional常见用法
java·开发语言·spring
paj1234567891 小时前
JDK1.8新增特性
java·开发语言
繁依Fanyi1 小时前
简易安卓句分器实现
java·服务器·开发语言·算法·eclipse
慧都小妮子1 小时前
Spire.PDF for .NET【页面设置】演示:打开 PDF 时自动显示书签或缩略图
java·pdf·.net
m51271 小时前
LinuxC语言
java·服务器·前端
IU宝1 小时前
C/C++内存管理
java·c语言·c++
瓜牛_gn1 小时前
依赖注入注解
java·后端·spring