SOAP (简单对象访问协议)是基于xml格式简易协议,支持绑定http、tcp、udp协议进行网络信息交换。常见的是SOAP结合http构建rpc风格的传输,大致过程是SOAP消息基于xml进行编码,然后映射到http协议语义上,基于http协议进行消息的网络传输。(也可以将SOAP消息映射到tcp\udp上)
webservice由SOAP、WSDL、UDDI 组成,SOAP用来描述传递信息的格式、WSDL用来描述如何访问具体的接口,UDDI用来管理查询webservice。
https://spring.io/guides/gs/producing-web-service/#initial
生成相应的服务依赖对象,通过服务发放地址(通常拼接上?wsdl)可以获取相应的wsdl文件,利用maven的 **maven-jaxb2-plugin**插件生成对象
参考
org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.14.0
generate
WSDL
${project.basedir}/src/main/java
com.xxx.xxxxx
${project.basedir}/src/main/resources
xx.wsdl
基于spring提供的webserviceTemplate 可以简单便捷的进行接口的请求
依赖
org.springframework.boot
spring-boot-starter-web-services
org.springframework.boot
spring-boot-starter-tomcat
webserviceTemplate 使用
WebServiceTemplate webServiceTemplate = new WebServiceTemplate() ;
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setContextPath("com.xx.xxx");//marshaller 解析的时候会依赖这个类路径
webServiceTemplate.setMarshaller(marshaller);
webServiceTemplate.setUnmarshaller(marshaller);
ObjectFactory objectFactory = new ObjectFactory();
return ((JAXBElement)webServiceTemplate.marshalSendAndReceive(url, objectFactory.createXXXX(xxxxx))).getValue();
https://www.w3school.com.cn/soap/soap_intro.asp
https://baike.baidu.com/item/%E7%AE%80%E5%8D%95%E5%AF%B9%E8%B1%A1%E8%AE%BF%E9%97%AE%E5%8D%8F%E8%AE%AE/3841505?fromtitle=SOAP&fromid=4684413&fr=aladdin
https://spring.io/guides/gs/producing-web-service/#initial
https://docs.spring.io/spring-ws/site/reference/html/client.html