当前位置: 首页 > news >正文

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.Servicespring的接口


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.查看打完收工&#xff01; 前言 工作中遇到的问题&#xff0c;由于下游系统属于第三方系统&#xff0c;使用的是soap webservice&#xff0c;同时也在开发&#xff0c;虽然也发布了一套webservic…...

Qt拖拽事件简单实现

1.相关说明 重写resizeEvent(这个按需重写)、dragEnterEvent(拖拽事件函数)、dropEvent(放下事件函数)&#xff0c;可以将本地图片拖拽到label标签中 2.相关界面 3.相关代码 #include "widget.h" #include "ui_widget.h" #include <QDragEnterEvent>…...

上门回收小程序,打造回收新模式

近年来&#xff0c;我国一直秉持着环保绿色的发展理念&#xff0c;为了减少资源浪费&#xff0c;旧物回收成为了人们处理废弃物品的方式。目前&#xff0c;我国回收市场规模大约能达到3.58亿元&#xff0c;在我国经济的稳定增长和环保意识的提高下&#xff0c;回收市场规模还将…...

unity项目《样板间展示》开发:火焰和UI设计

第二章&#xff1a;火焰和UI设计 前言一、火焰模型管理灶台火焰壁炉火焰 二、电视机播放三、UI设计结语 前言 这次带大家从0到1做一个unity项目&#xff1a;《样板间展示》。 顾名思义&#xff0c;项目内容是展示样板间&#xff0c;即玩家可以与房间中的物体、家具进行交互。 至…...

即插即用篇 | UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大卷积神经网络 | DRepConv

大卷积神经网络(ConvNets)近来受到了广泛研究关注,但存在两个未解决且需要进一步研究的关键问题。1)现有大卷积神经网络的架构主要遵循传统ConvNets或变压器的设计原则,而针对大卷积神经网络的架构设计仍未得到解决。2)随着变压器在多个领域的主导地位,有待研究ConvNets…...

MPU6050传感器—姿态检测

本节主要介绍以下内容&#xff1a; 姿态检测的基本概念 姿态传感器的工作原理及参数 MPU6050传感器介绍 实验&#xff1a;获取MPU6050原始数据 实验&#xff1a;移植官方DMP例程 一、姿态检测基本概念 1.1 姿态 在飞行器中&#xff0c;飞机姿态是非常重要的参数&#x…...

PaddleOCR封装,在线服务化部署实战(python部署,超新手教程)

OCR&#xff0c;即光学字符识别&#xff08;Optical Character Recognition&#xff09;&#xff0c;是一种将图像中的文字转换为机器编码文字的技术。这种技术可以识别和转换各种来源的文本&#xff0c;包括扫描文档、照片中的文字、手写笔记等。光学字符识别&#xff08;OCR&…...

采集B站up主视频信息

一、网页信息&#xff08;示例网址&#xff1a;https://space.bilibili.com/3493110839511225/video&#xff09; 二、查看响应数据 三、查看数据包内容 四、相关代码&#xff08;代码内容未进行翻页爬取&#xff09; # 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“不为…...

《幻兽帕鲁》服务器该如何选购

幻兽帕鲁作为目前火爆的一款游戏&#xff0c;幻兽帕鲁的服务器要能够承受其强大的力量和能力&#xff0c;需要具备一定的配置和性能。因此针对<幻兽帕鲁>这款游戏我们来总结一些可能用于承载幻兽帕鲁的服务器类型: 高性能服务器:幻兽帕鲁的能力强大&#xff0c;可能需要…...

比较有创意的网站

有创意的网站通常展示了独特的设计、交互或内容。以下是一些备受赞誉的有创意的网站&#xff0c;你可以参考&#xff1a; Awwwards: Awwwards 是一个评选并展示全球最优秀网站的平台。你可以在这里找到很多有创意的网站设计。 Awwwards CSS Design Awards: 类似于Awwwards&…...

alfred自定义谷歌翻译workflow

如果要实现自定义workflow&#xff0c;则必须安装付费版的alfred&#xff0c;囊中羞涩的话可以自行淘宝。自定义步骤如下&#xff1a; 1. 新建空的workflow&#xff0c;填写基本信息 2. 开发python脚本 打开该workflow所在目录&#xff0c;进行下面步骤&#xff1a; 首先安装…...

【网络安全 -> 防御与保护】专栏文章索引

为了方便 快速定位 和 便于文章间的相互引用等 作为一个快速准确的导航工具 网络安全——防御与保护 &#xff08;一&#xff09;.信息安全概述 &#xff08;二&#xff09;.防火墙组网...

用户资源(菜单)控制学习使用

效果图 第一步 需要再定义常量资源 //信访听证 资源前缀public static final String RESPREFIX_MODULE_XINFTZ_"module_xinftz_";//听证专家库public static final ConstantItem RES_MODULE_XINFTZ_TINGZZJK new ConstantItem(RESPREFIX_MODULE_XINFTZ_ "tin…...

邦芒支招:十大秘诀助你轻松进名企

找到一份理想的工作是大学毕业生们最大的心愿,而进入那些知名的大企业更是广大毕业生的梦想。如何应付这些企业的面试成为了毕业生们最为关注的话题。 这些名企的面试往往有一定的程序,绝非草草而就。因此,一定要有所准备才能“百战不殆”。而要在面试前得到有关信息,常常采用…...

5G_射频测试_参考规范(一)

参考规范&#xff1a; • Base Station (BS) conformance testing&#xff08;重点limitation&#xff09;Directory Listing /ftp/Specs/archive/38_series/38.104 (3gpp.org) • Conducted conformance testing&#xff08;传导测试&#xff09;3GPP 38.141-1 6.7 Tran…...

幻读是什么,用什么隔离级别可以防止幻读?

幻读指的是&#xff0c;在同一个事务中&#xff0c;以同样的条件执行的两次查询&#xff0c;第二次查询查到了第一次查询所没查到的数据。 在mysql的四种隔离级别中&#xff0c;可重复读和串行化两种隔离级别没有幻读问题。那么它们是如何解决幻读问题的呢&#xff1f; 先说串行…...

UE5 C++学习笔记 FString FName FText相互转换

1.FString 是UE里的String。最接近std::string, 唯一可以修改的字符串类型。性能更低 TEXT(string) TEXT宏&#xff0c;作用是将字符串转换成Unicode&#xff0c;切记UE中使用字符串输出要使用该宏 2. FName 是UE里特有的类型。它更注重于表示名称不区分大小写&#xff0c;不…...

【ASOC全解析(三)】machine原理和实战

【ASOC全解析&#xff08;三&#xff09;】machine原理和实战 一、machine概述与原理1.1 machine的主要职责1.2 本文的主要内容 二、machine程序示例完整的machine驱动代码示例扩展知识&#xff1a;SND_SOC_DAILINK_DEFS使用方法说明总结与其它说明 /*************************…...

matlab appdesigner系列-常用15-滑块、微调器

滑块&#xff0c;以左右拖动的方式在一定范围内改变数值 此示例&#xff0c;滑块显示微调器的数值&#xff0c;微调器也可以显示滑块的数值 操作步骤为&#xff1a; 1&#xff09;将滑块和微调器拖拽到画布上 2&#xff09;分别设置这两个组件的回调函数 回调函数有两个选项…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...