一个网站如何做外链,商丘网上房地产,百度公司的发展历程,国内好的网站建设Spring Boot整合webservice 前言1.整合依赖2.建立暴露接口2.实现类 3.发布服务4.查看打完收工#xff01; 前言
工作中遇到的问题#xff0c;由于下游系统属于第三方系统#xff0c;使用的是soap webservice#xff0c;同时也在开发#xff0c;虽然也发布了一套webservic… 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提供的这个有什么问题 依赖这里使用gradlemaven就根据‘’拆一下就好了。
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 ServletRegistrationBeanCXFServlet 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;}打完收工