Spring Boot整合webservice
Spring Boot整合webservice
- 前言
- 1.整合依赖
- 2.建立暴露接口
- 2.实现类
- 3.发布服务
- 4.查看
- 打完收工!
前言
工作中遇到的问题,由于下游系统属于第三方系统,使用的是soap webservice,同时也在开发,虽然也发布了一套webservice测试环境,但是我们相同的报文,测试10次能有个50的成功率。而且由于我们特殊的业务要求,测试环境不能单单只请求下游系统的测试环境。所以需要建造一个挡板,暂时mock数据,也可以满足特殊业务要求。
1.整合依赖
在网上查找资料的时候一件很神奇的事情,
Spring boot其实是提供了Webservice的相关依赖的,但是看大家使用的很少,反而使用的是cxf-spring-boot-starter-jaxws,先紧跟潮流,后面再研究一下Spring boot提供的这个有什么问题
- 依赖,这里使用gradle,maven就根据‘:’拆一下就好了。
implementation('org.apache.cxf:cxf-spring-boot-starter-jaxws:3.6.2')
2.建立暴露接口
@WebService(name = "TestService", // 暴露服务名称targetNamespace = "http://localhost:8080/"// 命名空间,一般是接口的包名倒序
)
public interface TestService {@WebMethodString test(@XmlElement(name = "requestXml",required = true,nillable = true) String requestXml) throws Exception;
}
XmlElement注解可以给arg生成一个别名,让服务认识这个参数,不加这个注解默认是arg0。
2.实现类
代码如下:
@org.springframework.stereotype.Service
@WebService(serviceName = "TestService", // 与接口中指定的name一致, 都可以不写targetNamespace = "http://localhost:8080/", // 与接口中的命名空间一致,一般是接口的包名倒,都可以不用写endpointInterface = "com.test.TestService" // 接口类全路径
)
public class TestServiceImpl implements TestService {@Overridepublic String test(String requestXml) {return "test";}
}
@org.springframework.stereotype.Service是spring的接口
3.发布服务
代码如下:
@Configuration
public class WebServiceConfiguration {@Bean("cxfServletRegistration")public ServletRegistrationBean<CXFServlet> dispatcherServlet() {return new ServletRegistrationBean<>(new CXFServlet(),"/soap/*");}@Bean(name = Bus.DEFAULT_BUS_ID)public SpringBus springBus() {return new SpringBus();}@Beanpublic Endpoint endpoint(TestService testService) {EndpointImpl endpoint = new EndpointImpl(springBus(), testService);endpoint.publish("/TestService");return endpoint;}
}
4.查看
这个时候就可以在localhost:8080/soap/TestService?wsdl查看了。由于我是工作的不方便展示,这个就记录一下好了。如果想再发布一个,就再添加一个Endpoint
如下:
@Beanpublic Endpoint endpoint1(TestService testService) {EndpointImpl endpoint = new EndpointImpl(springBus(), testService);endpoint.publish("/TestService1");return endpoint;}
打完收工!
相关文章:
Spring Boot整合webservice
Spring Boot整合webservice 前言1.整合依赖2.建立暴露接口2.实现类 3.发布服务4.查看打完收工! 前言 工作中遇到的问题,由于下游系统属于第三方系统,使用的是soap webservice,同时也在开发,虽然也发布了一套webservic…...
Qt拖拽事件简单实现
1.相关说明 重写resizeEvent(这个按需重写)、dragEnterEvent(拖拽事件函数)、dropEvent(放下事件函数),可以将本地图片拖拽到label标签中 2.相关界面 3.相关代码 #include "widget.h" #include "ui_widget.h" #include <QDragEnterEvent>…...
上门回收小程序,打造回收新模式
近年来,我国一直秉持着环保绿色的发展理念,为了减少资源浪费,旧物回收成为了人们处理废弃物品的方式。目前,我国回收市场规模大约能达到3.58亿元,在我国经济的稳定增长和环保意识的提高下,回收市场规模还将…...
unity项目《样板间展示》开发:火焰和UI设计
第二章:火焰和UI设计 前言一、火焰模型管理灶台火焰壁炉火焰 二、电视机播放三、UI设计结语 前言 这次带大家从0到1做一个unity项目:《样板间展示》。 顾名思义,项目内容是展示样板间,即玩家可以与房间中的物体、家具进行交互。 至…...
即插即用篇 | UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大卷积神经网络 | DRepConv
大卷积神经网络(ConvNets)近来受到了广泛研究关注,但存在两个未解决且需要进一步研究的关键问题。1)现有大卷积神经网络的架构主要遵循传统ConvNets或变压器的设计原则,而针对大卷积神经网络的架构设计仍未得到解决。2)随着变压器在多个领域的主导地位,有待研究ConvNets…...
MPU6050传感器—姿态检测
本节主要介绍以下内容: 姿态检测的基本概念 姿态传感器的工作原理及参数 MPU6050传感器介绍 实验:获取MPU6050原始数据 实验:移植官方DMP例程 一、姿态检测基本概念 1.1 姿态 在飞行器中,飞机姿态是非常重要的参数&#x…...
PaddleOCR封装,在线服务化部署实战(python部署,超新手教程)
OCR,即光学字符识别(Optical Character Recognition),是一种将图像中的文字转换为机器编码文字的技术。这种技术可以识别和转换各种来源的文本,包括扫描文档、照片中的文字、手写笔记等。光学字符识别(OCR&…...
采集B站up主视频信息
一、网页信息(示例网址:https://space.bilibili.com/3493110839511225/video) 二、查看响应数据 三、查看数据包内容 四、相关代码(代码内容未进行翻页爬取) # Time: 2024/1/19 16:42 # Author: 马龙强 # File: 采集B…...
Laykefu客服系统 任意文件上传漏洞复现
0x01 产品简介 Laykefu 是一款基于workerman+gatawayworker+thinkphp5搭建的全功能webim客服系统,旨在帮助企业有效管理和提供优质的客户服务。 0x02 漏洞概述 Laykefu客服系统/admin/users/upavatar.html接口处存在文件上传漏洞,而且当请求中Cookie中的”user_name“不为…...
《幻兽帕鲁》服务器该如何选购
幻兽帕鲁作为目前火爆的一款游戏,幻兽帕鲁的服务器要能够承受其强大的力量和能力,需要具备一定的配置和性能。因此针对<幻兽帕鲁>这款游戏我们来总结一些可能用于承载幻兽帕鲁的服务器类型: 高性能服务器:幻兽帕鲁的能力强大,可能需要…...
比较有创意的网站
有创意的网站通常展示了独特的设计、交互或内容。以下是一些备受赞誉的有创意的网站,你可以参考: Awwwards: Awwwards 是一个评选并展示全球最优秀网站的平台。你可以在这里找到很多有创意的网站设计。 Awwwards CSS Design Awards: 类似于Awwwards&…...
alfred自定义谷歌翻译workflow
如果要实现自定义workflow,则必须安装付费版的alfred,囊中羞涩的话可以自行淘宝。自定义步骤如下: 1. 新建空的workflow,填写基本信息 2. 开发python脚本 打开该workflow所在目录,进行下面步骤: 首先安装…...
【网络安全 -> 防御与保护】专栏文章索引
为了方便 快速定位 和 便于文章间的相互引用等 作为一个快速准确的导航工具 网络安全——防御与保护 (一).信息安全概述 (二).防火墙组网...
用户资源(菜单)控制学习使用
效果图 第一步 需要再定义常量资源 //信访听证 资源前缀public static final String RESPREFIX_MODULE_XINFTZ_"module_xinftz_";//听证专家库public static final ConstantItem RES_MODULE_XINFTZ_TINGZZJK new ConstantItem(RESPREFIX_MODULE_XINFTZ_ "tin…...
邦芒支招:十大秘诀助你轻松进名企
找到一份理想的工作是大学毕业生们最大的心愿,而进入那些知名的大企业更是广大毕业生的梦想。如何应付这些企业的面试成为了毕业生们最为关注的话题。 这些名企的面试往往有一定的程序,绝非草草而就。因此,一定要有所准备才能“百战不殆”。而要在面试前得到有关信息,常常采用…...
5G_射频测试_参考规范(一)
参考规范: • Base Station (BS) conformance testing(重点limitation)Directory Listing /ftp/Specs/archive/38_series/38.104 (3gpp.org) • Conducted conformance testing(传导测试)3GPP 38.141-1 6.7 Tran…...
幻读是什么,用什么隔离级别可以防止幻读?
幻读指的是,在同一个事务中,以同样的条件执行的两次查询,第二次查询查到了第一次查询所没查到的数据。 在mysql的四种隔离级别中,可重复读和串行化两种隔离级别没有幻读问题。那么它们是如何解决幻读问题的呢? 先说串行…...
UE5 C++学习笔记 FString FName FText相互转换
1.FString 是UE里的String。最接近std::string, 唯一可以修改的字符串类型。性能更低 TEXT(string) TEXT宏,作用是将字符串转换成Unicode,切记UE中使用字符串输出要使用该宏 2. FName 是UE里特有的类型。它更注重于表示名称不区分大小写,不…...
【ASOC全解析(三)】machine原理和实战
【ASOC全解析(三)】machine原理和实战 一、machine概述与原理1.1 machine的主要职责1.2 本文的主要内容 二、machine程序示例完整的machine驱动代码示例扩展知识:SND_SOC_DAILINK_DEFS使用方法说明总结与其它说明 /*************************…...
matlab appdesigner系列-常用15-滑块、微调器
滑块,以左右拖动的方式在一定范围内改变数值 此示例,滑块显示微调器的数值,微调器也可以显示滑块的数值 操作步骤为: 1)将滑块和微调器拖拽到画布上 2)分别设置这两个组件的回调函数 回调函数有两个选项…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
