当前位置: 首页 > 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;}

打完收工!

http://www.lryc.cn/news/286491.html

相关文章:

  • Qt拖拽事件简单实现
  • 上门回收小程序,打造回收新模式
  • unity项目《样板间展示》开发:火焰和UI设计
  • 即插即用篇 | UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大卷积神经网络 | DRepConv
  • MPU6050传感器—姿态检测
  • PaddleOCR封装,在线服务化部署实战(python部署,超新手教程)
  • 采集B站up主视频信息
  • Laykefu客服系统 任意文件上传漏洞复现
  • 《幻兽帕鲁》服务器该如何选购
  • 比较有创意的网站
  • alfred自定义谷歌翻译workflow
  • 【网络安全 -> 防御与保护】专栏文章索引
  • 用户资源(菜单)控制学习使用
  • 邦芒支招:十大秘诀助你轻松进名企
  • 5G_射频测试_参考规范(一)
  • 幻读是什么,用什么隔离级别可以防止幻读?
  • UE5 C++学习笔记 FString FName FText相互转换
  • 【ASOC全解析(三)】machine原理和实战
  • matlab appdesigner系列-常用15-滑块、微调器
  • google翻译相机报错 请安装最新的Google应用,以便使用相机翻译功能
  • openssl3.2/test/certs - 015 - Primary intermediate ca: ca-cert
  • linux中用户及用户组信息
  • 用Go plan9汇编实现斐波那契数列计算
  • Message queue 消息队列--RabbitMQ 【基础入门】
  • 【汇编】 13.3 对int iret和栈的深入理解
  • Git提交大文件报错“remote: Please remove the file from history and try again. ”
  • 接口测试 03 -- 接口自动化思维 Requests库应用
  • SpringBoot:Bean生命周期自定义初始化和销毁
  • Git--基本操作介绍(2)
  • 第08章_面向对象编程(高级)(static,单例设计模式,理解mian方法,代码块,final,抽象类与抽象方法,接口,内部类,枚举类,注解,包装类)