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;}

打完收工!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言【taxa】——roots(),stems(),subtaxa(),supertaxa():获取根节点、茎节点、子类群和父类群

roots(x, subset NULL) 在 taxonomy 中查找根节点类群的索引值。 > x <- taxonomy(c(Carnivora, Felidae, Panthera, Panthera leo,Panthera tigris, Ursidae, Ursus, Ursus arctos),supertaxa c(NA, 1, 2, 3, 3, 1, 6, 7))> roots(x) [1] 1> roots(x, subset …

如何在阿里云提交使用工单

有时候大家在使用阿里云的服务时候&#xff0c;可能会遇到一些问题&#xff0c;或许是云服务器如何升级了如何改套餐啊之类的&#xff0c;亦或者是域名ICP备案啊看进度啊等等问题&#xff0c;遇到问题怎么办不要慌。我们可以使用阿里云的工单系统&#xff0c;阿里云工单系统可以…

Linux命令大全

文章目录 目录操作与文件管理系统信息与管理软件包管理和系统维护压缩与解压缩网络与通信辅助工具与信息获取文本处理与搜索时间与日期操作网络连接与通信&#xff08;补充&#xff09;链接管理磁盘与存储管理环境变量与路径设置用户和组管理查看系统信息 当然&#xff0c;以下…

Python使用pip命令安装外部库-项目内安装外部库-全局安装外部库

一、前言 在进行Python项目开发时需要安装一些外部库来扩展项目功能&#xff0c;因此需要了解pip命令的详细使用。 二、基本语法 1.安装库 pip install 包名 2.安装特定版本 pip install 包名版本号 3.升级库 pip install --upgrade 包名 4.卸载库 pip uninstall 包名 5.查看已…

搜索与图论第七期 Prime算法

前言 prime算法也是一种图的结构 &#xff0c;哎图的结构还有好多好多&#xff0c;大家慢慢学吧&#xff01;&#xff01;&#xff01; 一、prime 算法的基本内容 过程&#xff1a; 最小生成树prim算法简单理解他的寻找路径的过程&#xff0c;从一个顶点V0开始&#xff0c;…

字节跳动 ByteHouse 云原生之路 – 计算存储分离与性能优化

01 起源 ByteHouse 的故事从字节跳动对于先进数据处理和分析的需求开始&#xff0c;这一需求随着公司业务规模的迅速扩张而日益增长&#xff0c;起源是对开源数据库管理系统 ClickHouse 的改造和增强。面对数据处理的高延迟、大规模数据操作的复杂性以及数据存储和处理成本的上…

【SGX系列教程】(一)Intel-SGX SDK在ubuntu22.04下安装全流程

文章目录 一.概述1.1 SGX三大组件1.2 SGXDataCenterAttestationPrimitives 二.安装流程2.1 检查服务器是否支持SGX2.2 sgx硬件/软件开启方法2.3 sgx dirver驱动安装&#xff1b;2.3.1 linux-sgx-driver驱动程序2.3.2 Intel SGX Support in the Linux Kernel&#xff08;linux内…

线程的同步和互斥学习笔记

目录 互斥锁的概念和使用 线程通信-互斥 互斥锁的创建和销毁 申请锁-pthread_mutex_lock 释放锁-pthread_mutex_unlock 读写锁的概念和使用 死锁的避免 互斥锁的概念和使用 线程通信-互斥 临界资源 一次只允许一个任务&#xff08;进程、线程&#xff09;访问的共享资…

电脑有网,浏览器连不上网,其他应用却能用

当我们访问浏览器的时候显示&#xff0c;你尚未链接&#xff0c;代理服务器可能有问题&#xff0c;或地址不正确的时候.可你的wifi任然是连接的&#xff0c;但是只有浏览器用不了&#xff0c;微信和其他程序都可以正常连接&#xff0c;这是为什么呢&#xff1f; 绝大多数是因为…

K8S的HPA

horiztal Pod Autoscaling&#xff1a;pod的水平自动伸缩&#xff0c;这是k8s自带的模块&#xff0c;它是根据Pod占用cpu比率到达一定的阀值&#xff0c;会触发伸缩机制 Replication controller 副本控制器&#xff1a;控制pod的副本数 Deployment controller 节点控制器&…

云原生网关哪家强:Sealos 网关血泪史

作者&#xff1a;Sealos 创始人&#xff0c;环界云计算 CEO 方海涛 Sealos 公有云 &#xff08;https://cloud.sealos.io&#xff09; 几乎打爆了市面上所有主流的开源网关&#xff0c;本文可以给大家很好的避坑&#xff0c;在网关选型方面做一些参考。 Sealos Cloud 的复杂场…

jenkins安装配置,使用Docker发布maven项目全过程记录(1)

使用的CentOS8 系统&#xff0c;其它Linux系统类似 1、jenkins安装 1.1、配置JAVA环境 使用的服务器环境中&#xff0c;安装了Java1.8与Java17&#xff0c;当前jenkins的最低java版本要求java11。系统默认使用的是java1.8&#xff0c;因此需要切换环境。 alternatives --co…

Qt采集本地摄像头推流成rtsp/rtmp(可网页播放/支持嵌入式linux)

一、功能特点 支持各种本地视频文件和网络视频文件。支持各种网络视频流&#xff0c;网络摄像头&#xff0c;协议包括rtsp、rtmp、http。支持将本地摄像头设备推流&#xff0c;可指定分辨率和帧率等。支持将本地桌面推流&#xff0c;可指定屏幕区域和帧率等。自动启动流媒体服…

flink-java使用介绍,flink,java,DataStream API,DataSet API,ETL

1、环境准备 文档&#xff1a;https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/ 仓库&#xff1a;https://github.com/apache/flink 下载&#xff1a;https://flink.apache.org/zh/downloads/ 下载指定版本&#xff1a;https://archive.apache.org/dist/flink…

编程笔记 html5cssjs 054 CSS默认值

css属性在没有设置的时候&#xff0c;也是有值的&#xff0c;这就是默认值。列在下面&#xff0c;方便查看。 元素 默认的 CSS 值a:link color: (internal value);text-decoration: underline;cursor: auto;a:visited color: (internal value);text-decoration: underline;curs…

美易平台:通用电气四季度业绩超预期,展望一季度财务预测

在经济全球化的今天&#xff0c;各大企业的财务报告不仅是对公司自身运营状况的反映&#xff0c;也是市场经济活力和行业发展趋势的晴雨表。近期&#xff0c;通用电气&#xff08;GE&#xff09;发布了其四季度财务报告&#xff0c;调整后营收达到了185亿美元&#xff0c;超出市…

Spring复习-问题回答

1.什么是 spring&#xff0c;你对 spring 的理解? Spring是一个轻量级&#xff0c;非侵入式的&#xff08;不使用框架特定的类&#xff0c;感受不到框架&#xff09;IOC和AOP一站式的java后端开发框架&#xff0c;简化企业开发。 2.spring 的优缺点 优点&#xff1a; Spr…

STL第二讲

第二讲 视频标准库源码版本&#xff1a;gnu c 2.9.1/4.9/Visual C OOP vs GP GP是将datas与methods分开&#xff0c;OOP相反&#xff1b; 为什么list不能使用全局的sort&#xff1f; 因为sort源代码&#xff1a; *(first (last - first)/2) // 此迭代器只能是随机访问迭代…

AI智能视频监控系统-监控视频识别人员着装分析报警---豌豆云

随着经济的发展&#xff0c;城市化进程的推进&#xff0c;社会矛盾和暴力事件频发&#xff0c;安防监控系统的重要性越发突出。人工智能&#xff0c;尤其是只能视觉技术成为智能安防领域的大趋势。 从监控技术发展来看&#xff0c;大致可以分为三个阶段&#xff1a;人力现场监…

使用 Python 数据写入 Excel 工作表

在数据处理和报告生成等工作中&#xff0c;Excel 表格是一种常见且广泛使用的工具。然而&#xff0c;手动将大量数据输入到 Excel 表格中既费时又容易出错。为了提高效率并减少错误&#xff0c;使用 Python 编程语言来自动化数据写入 Excel 表格是一个明智的选择。Python 作为一…