挤地铁、上班、吃饭、打球。基本上现在的生活每天都是这样,少了些激情,多了些安稳。
生活可以平平淡淡,但是不可以乱七八糟。
其实我自己也没有接触过webservice开发,可能是技术太早了吧。但是项目里面避免不了远程调用,而对于那些有些年头的系统来说,他们就是开发的webservice服务。所以还是避免不了去学习一下这门技术。
生成方式有好多种,本文就介绍用jdk生成的方法,其他的请各位看官自行百度即可。
wsimport -keep -d D:webserviceClientd -s D:webserviceClients -p com.map -verbose 你的wsdl地址
参数说明:
执行以上代码会将用到的客户端代码生成出来,每个wsdl生成的都是不一样的。
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>
配置如下:
@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 条评论) |