龙空技术网

如何在微服务中使用webservice?七步足矣!

以码为梯 382

前言:

此刻你们对“spring集成webservice”可能比较注意,兄弟们都需要学习一些“spring集成webservice”的相关内容。那么小编也在网上搜集了一些对于“spring集成webservice””的相关知识,希望姐妹们能喜欢,看官们一起来学习一下吧!

在平时的开发过程中,我们会涉及到集成外部系统数据,或者为外部系统提供数据的情况。遇到这样的情况,可以使用Restful来实现,但是也不免会遇到通过webservice的方式来进行集成的方式。碰巧小编这段时间也遇到使用webservice进行集成的情况,就跟大家说说如何使用webservice进行交互。

第一步,在pom文件中加入相关依赖

第二步,添加xsd文件

具体的xsd文件,需要根据具体的业务的请求以及返回对象来编写。这里关于xsd不做具体的讲解,需要注意的是上图的三个标记处。第一处为命名空间,这个在生成wsdl的代码中会使用到。第二处,第三处分别为响应信息以及请求信息。这里需要注意的是,name属性值必须以Response以及Request结尾,否则生成的wsdl会有问题。

第三步,根据xsd文件生成对应的请求以及响应的实体类

小编是用eclipse进行开发,具体的操作方法为:右键xsd文件,选择Genereate,选择JAXB Class,后续选择工程以及生成的实体类放置的包名就可以。小编一开始生成的时候,出现了如下错误:

如果遇到上面的问题,那是因为项目依赖的是jre,不是jdk,只需将它修改为jdk就可以了。

修改过后,就可以成功的生成实体类,如下图:

第四步,配置生成wsdl的Bean

上图中的portTypeName,locationUri,targetNamespace三个属性是必须设置的,其中bean的name是需要配置的。

第五步,启动服务,获取wsdl

在启动服务器之后,在浏览器中输入地址ip:port/services/topline.wsdl,就可以看到对应的wsdl文件。接着,Ctrl+s将文件保存到本地。

第六步,编写Endpoint

这里的Endpoint就相当于SpringMVC中的Controller,上图列举了几个比较重要的地方

在类上加上@Endpoint注解

在方法上加上@PayloadRoot,其中namespace属性为xsd里面定义的命名空间,localPart为xsd中对应请求的名称

在方法中加入@ResponsePayload,可以返回生成的响应实体类

在方法的参数前面加上@RequestPayload,可以用生成的请求实体类来接收参数

第七步,测试

在SoapUI中,利用第五步中保存到本地的文件,创建一个工程,然后打开getKPIValue测试,结果如下

到这里,我们就完成了在Springboot中使用webservice,具体的代码可以到我的码云上去查看。

经过前面几篇文章的学习,对于Springboot也算是入门了,从下面一篇开始开始讲解Docker以及SpringCloud的组件,希望大家多多关注,多多提意见,谢谢阅读。

标签: #spring集成webservice