江湖失传已久的功夫,确定不来看一下吗?spring boot整合webservice,实现webservice客户端

阅读: 评论:0

江湖失传已久的功夫,确定不来看一下吗?spring boot整合webservice,实现webservice客户端

江湖失传已久的功夫,确定不来看一下吗?spring boot整合webservice,实现webservice客户端

自话自说

挤地铁、上班、吃饭、打球。基本上现在的生活每天都是这样,少了些激情,多了些安稳。
生活可以平平淡淡,但是不可以乱七八糟。

Spring Boot整合webservice实现客户端远程调用

其实我自己也没有接触过webservice开发,可能是技术太早了吧。但是项目里面避免不了远程调用,而对于那些有些年头的系统来说,他们就是开发的webservice服务。所以还是避免不了去学习一下这门技术。

根据wsdl生成客户端代码

生成方式有好多种,本文就介绍用jdk生成的方法,其他的请各位看官自行百度即可。

wsimport -keep -d D:webserviceClientd -s D:webserviceClients -p com.map -verbose 你的wsdl地址

参数说明:

  • -keep:是否生成java源文件
  • -d:指定.class文件的输出目录
  • -s:指定.java文件的输出目录
  • -p:定义生成类的包名,不定义的话有默认包名
  • -verbose:在控制台显示输出信息
  • -b:指定jaxws/jaxb绑定文件或额外的schemas
  • -extension:使用扩展来支持SOAP1.2

执行以上代码会将用到的客户端代码生成出来,每个wsdl生成的都是不一样的。

引入jar包

maven引入如下:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web-services</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency>

Spring Boot配置客户端

配置如下:

@Configuration
public class WSClient {@Beanpublic Jaxb2Marshaller marshaller() {Jaxb2Marshaller marshaller = new Jaxb2Marshaller();marshaller.setContextPath(&#iveservice");return marshaller;}@Beanpublic ReceiveClient countryClient(Jaxb2Marshaller marshaller) {ReceiveClient client = new ReceiveClient();client.setDefaultUri("ip:port/xxxxxService");client.setMarshaller(marshaller);client.setUnmarshaller(marshaller);return client;}
}

客户端代码如下:

public class ReceiveClient extends WebServiceGatewaySupport {public ReceiveResponse getResponse() throws DatatypeConfigurationException {Receive receive = new Receive(); // 这个就是请求参数ReceiveResponse response = (ReceiveResponse) getWebServiceTemplate().marshalSendAndReceive(receive, (message) -> {// 设置请求头Token token = new Token();ObjectFactory factory = new ObjectFactory();SoapHeaderElement tokenElement = ((SoapMessage)message).getSoapHeader().ateToken(token).getName());                   				  tokenElement.setText("234234234234");message.writeTo(System.out);});return response;}
}

测试例子如下:

@RestController
@RequestMapping("/test")
public class TestController {@AutowiredReceiveClient receiveClient;@GetMapping("/receive")public void receice() throws DatatypeConfigurationException {Response();}
}

以上就是整个对接webservice的流程,希望对大伙有帮助!

本文发布于:2024-02-03 01:21:47,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170689453447718.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:不来   已久   看一下   客户端   功夫
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23