SpringBoot请求WebService服务接口

目录

确定请求接口是否为webService接口

请求对方的接口地址获取对方的wsdl文件

将wsdl文件转换成Java类

请求对方接口

请求方式一

请求方式二


确定请求接口是否为webService接口

接口地址类似于:http://172.0.0.1:8080/webservice/baseService?wsdl 这样的就是webService接口。

请求对方的接口地址获取对方的wsdl文件

通过命令请求http://172.0.0.1:8080/webservice/baseService?wsdl接口,然后就会获取到对方接口的wsdl文件,将wsdl文件存放到本地。

wget 'http://172.0.0.1:8080/webservice/baseService?wsdl'

将wsdl文件转换成Java类

下载apache-cxf:Apache CXF -- DownloadApache CXF, Services Framework - Downloadicon-default.png?t=N7T8https://cxf.apache.org/download.html

注意:apache-cxf-3.4.0下载的版本需要注意我用的jdk8所以下载的这个版本,如果是其他版本的jdk需要下载apache-cxf官网对应的版本。

下载完成之后打开apache-cxf-3.4.0的目录在bin目录下面运行cmd,执行转换命令

wsdl2java -encoding utf-8 -d lalal -p com.lallala e:\baseService

其中lalal为转换的java类的文件名(改文件存放在所下载的apache-cxf-3.4.0的bin目录下面), 其中com.lallala为转换成Java类的包名(注意:这里的包名要与对方类所在的包名一致,需要提前问清楚对方包名),其中e:\baseService为从服务器下载的wsdl文件的存放位置,然后将包拷贝到自己的项目中即可。

请求对方接口

请求方式一

导入依赖


        <!-- CXF webservice -->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
            <version>3.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>3.2.1</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
        </dependency>

发送请求

 //创建webService连接
        JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
        log.info("开始连接");
        // 创建客户端连接
        Client client = factory.createClient(url);
        log.info("建立连接");
        Object[] res = null;
        try {
                 res = client.invoke("insertIntoInspect", tokenId, recordBase, recordExtraTitles, recordModules, recordStaffs);
                 if(null == res){
                     log.error("无返回结果");
                 }
                 log.info("返回结果:" + res);
            log.info("==" + JSON.toJSONString(res));
            JSONArray jsonArray = JSONObject.parseArray(JSON.toJSONString(res));
            JSONObject resultObj = JSONObject.parseObject(JSON.toJSONString(jsonArray.get(0)));
            String state = resultObj.getString("status");
            }

请求方式二

 导入依赖


        <!-- CXF webservice -->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
            <version>3.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>3.2.1</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
        </dependency>

在导入的java类中找到带有_Service的类将类中对应的地方改成自己请求的对方的地址:

发送请求:其中BaseService_Service就是改动url地址的类;

BaseService_Service mBaseInfoService_Service = new BaseService_Service();
BaseService mBaseInfoService = mBaseInfoService_Service.getSystemServiceImplPort();
//发送请求
BdsoftResult result1 = mBaseInfoService.getAllStaff(tokenId);

其中getSystemtServiceInplPort为截图中的方法名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/487403.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能合约 之 ERC-721

ERC-721&#xff08;Non-Fungible Token&#xff0c;NFT&#xff09;标准 ERC-721是以太坊区块链上的一种代币标准&#xff0c;它定义了一种非同质化代币&#xff08;Non-Fungible Token&#xff0c;NFT&#xff09;的标准。NFT是一种加密数字资产&#xff0c;每个代币都具有独…

Acwing_799最长连续不重复子序列 【双指针 快慢指针】

题目&#xff1a; 代码&#xff1a; #include <bits/stdc.h> #define int long long #define INF 0X3f3f3f3f #define endl \n using namespace std; const int N 100010; int arr[N];int n; signed main(){std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)…

2.3 Mac OS安装Python环境

Mac OS安装Python环境 和 Linux 发行版类似&#xff0c;最新版的 Mac OS X 也会默认自带 Python 2.x。 我们可以在终端&#xff08;Terminal&#xff09;窗口中输入python命令来检测是否安装了 Python 开发环境&#xff0c;以及安装了哪个版本&#xff0c;如下所示&#xff1…

2.12 过拟合与欠拟合是什么?怎么解决?

2.12 过拟合与欠拟合是什么&#xff1f;怎么解决&#xff1f; 场景描述 在模型评估与调整的过程中&#xff0c;我们往往会遇到“过拟合”或“欠拟合”的情况。如何有效地识别“过拟合”和“欠拟合”现象&#xff0c;并有针对性地进行模型调整&#xff0c;是不断改进机器学习模…

由浅到深认识Java语言(20):包装类

该文章Github地址&#xff1a;https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.c…

10万+SRC高质量稀有明星人脸素材唐嫣杨紫金晨倪妮蔡卓妍张雨绮合集

素材下载&#xff1a;点击下载 DFL模型训练用&#xff0c;高质量SRC素材合集&#xff1a; 【唐嫣_WF】6000张src人脸素材【金鱼基础模型库】用于补全SRC极限角度范冰冰 WF 512 苹果稀有死亡角度.zip王鸥_WF_512 多部电影 有死亡角度和张嘴的&#xff0c;5000多张.rar杨紫 108…

【考研数学】如何搭配好《660》+《880》组合?

如果1800题都做不明白&#xff0c;那就不要去做880题660题 做完1800题之后&#xff0c;还迷迷糊糊&#xff0c;解题水平极低&#xff0c;都是犯了一个错误&#xff1a; 那就是为了做题而做题&#xff01; 如果这个习惯不改掉&#xff0c;那不管是做660题还是880题都起不到任…

基于ArkUI框架开发-ImageKnife渲染层重构

ImageKnife是一款图像加载缓存库&#xff0c;主要功能特性如下&#xff1a; ●支持内存缓存&#xff0c;使用LRUCache算法&#xff0c;对图片数据进行内存缓存。 ●支持磁盘缓存&#xff0c;对于下载图片会保存一份至磁盘当中。 ●支持进行图片变换&#xff1a;支持图像像素…

如何用Airtest脚本连接无线Android设备?

之前我们已经详细介绍过如何用AirtestIDE无线连接Android设备&#xff0c;它的关键点在于&#xff0c;需要先 adb connect 一次&#xff0c;才能点击 connect 按钮无线连接上该设备&#xff1a; 但是有很多同学&#xff0c;在使用纯Airtest脚本的形式连接无线设备时&#xff0c…

IObit Uninstaller Pro:一键强力卸载,让您的电脑焕然一新

在数字化时代&#xff0c;电脑已经成为我们生活和工作中不可或缺的一部分。然而&#xff0c;随着我们使用电脑的时间越来越长&#xff0c;安装的软件也越来越多&#xff0c;电脑的性能往往会逐渐下降&#xff0c;甚至出现卡顿、崩溃等问题。这些问题往往源于一些难以卸载的顽固…

[蓝桥杯 2020 省 AB1] 网络分析

一开始写的暴力合并 卡n^2过的不是正解 看正解是类似 虚拟点树形DP的思路 很巧妙 记录一下 #include<bits/stdc.h> using namespace std; using ll long long; using pii pair<int,int>; #define int long long const int N 3e510; const int inf 0x3f3f3f3f; …

STL ④ —— 哈希

1. 散列表 根据 key 计算 key 在表中的位置的数据结构&#xff1b;是 key 和其所在存储地址的映射关系&#xff0c;即 hash(key) % size index struct node{void *key;void *value;struct node *next; };2. hash函数 2.1 hash函数的特点 计算速度快强随机分布性&#xff0…

由浅到深认识Java语言(21):Math类

该文章Github地址&#xff1a;https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.c…

Spring IoC DI(1)

IoC & DI入门 Spring 通过前面的学习, 我们知道了Spring是一个开源框架, 它让我们的开发更加简单. 它支持广泛的应用场景, 有着活跃且庞大的社区, 这就是Spring能够长久不衰的原因. 但是这个概念还是比较抽象. 可以用更具体的话描述Spring, 那就是: Spring是包含了众多…

HAL STM32G4内部运放的使用

HAL STM32G4内部运放的使用 &#x1f4cd;相关篇《HAL STM32G4 ADC手动触发采集各种滤波算法实现》&#x1f388;《HAL STM32G4 TIM1 3路PWM互补输出VOFA波形演示》 ✨继欧拉电子无刷电机驱动相关视频学习&#xff0c;STM32G4内部运放的使用。主要是为了采集无刷电机&#xff0…

《深入浅出LLM 》(二):大模型基础知识

&#x1f389;AI学习星球推荐&#xff1a; GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料&#xff0c;配有全面而有深度的专栏内容&#xff0c;包括不限于 前沿论文解读、…

C语言栈和队列(个人笔记)

栈和队列 栈1.1栈的概念和结构1.2栈的实现 队列2.1队列的概念及结构2.2队列的实现2.3循环队列 栈和队列笔试题3.1[有效的括号](https://leetcode.cn/problems/valid-parentheses/submissions/516297357/)3.2[用队列实现栈](https://leetcode.cn/problems/implement-stack-using…

c盘清理软件绿色免安装版老电脑的福音

家里有一台老电脑笔记本&#xff0c;10年前的产品了&#xff0c;内存也不大&#xff0c;只有2G&#xff0c;安装360后&#xff0c;就卡的不行了&#xff0c;安装他的目的其实就是为了定期清理一下C盘空间&#xff0c;为了解决这个问题&#xff0c;于是做了一下研究&#xff0c;…

【Java常用API】正则表达式练习

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …

安卓转鸿蒙竟如此丝滑

随着鸿蒙的爆火&#xff0c;大家都想知道鸿蒙能不能搞&#xff1f; 相信大家搞开发的&#xff0c;都多多少少的了解过鸿蒙。近几个月鸿蒙的大动作也不少&#xff0c;如&#xff1a;重庆市近20个垂域应用与鸿蒙原生合作、深圳制定鸿蒙《行动计划》、阿里再次与鸿蒙展开合作&…