SOAP接口对接

简介: 基于spring 框架下的soap接口对接

SOAP接口对接

SOAP协议

SOAP (简单对象访问协议)是基于xml格式简易协议,支持绑定http、tcp、udp协议进行网络信息交换。常见的是SOAP结合http构建rpc风格的传输,大致过程是SOAP消息基于xml进行编码,然后映射到http协议语义上,基于http协议进行消息的网络传输。(也可以将SOAP消息映射到tcp\udp上)

webservice

webservice由SOAP、WSDL、UDDI 组成,SOAP用来描述传递信息的格式、WSDL用来描述如何访问具体的接口,UDDI用来管理查询webservice。

spring webservice 实现

发布webservice

https://spring.io/guides/gs/producing-web-service/#initial

访问webservice

  1. 生成相应的服务依赖对象,通过服务发放地址(通常拼接上?wsdl)可以获取相应的wsdl文件,利用maven的      maven-jaxb2-plugin插件生成对象
    参考
<build>
        <plugins>
            <!-- tag::wsdl[] -->
            <plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <version>0.14.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <schemaLanguage>WSDL</schemaLanguage>
                    <generateDirectory>${project.basedir}/src/main/java</generateDirectory>
                    <generatePackage>com.xxx.xxxxx</generatePackage>
                    <schemaDirectory>${project.basedir}/src/main/resources</schemaDirectory>
                    <schemaIncludes>
                        <include>xx.wsdl</include>
                    </schemaIncludes>
<!--                    <schemas>-->
<!--                        <schema>-->
<!--                            <url>http:xxxxxxxx?wsdl</url>-->
<!--                        </schema>-->
<!--                    </schemas>-->
                </configuration>
            </plugin>
            <!-- end::wsdl[] -->
        </plugins>
    </build>


  1. 基于spring提供的webserviceTemplate 可以简单便捷的进行接口的请求
    依赖
<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>

       

  1. 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<QueryPolicyInfoResponse>)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

相关文章
|
15天前
|
XML API 网络架构
API架构风格对比:SOAP vs REST vs GraphQL vs RPC
API架构风格对比:SOAP vs REST vs GraphQL vs RPC
30 2
|
2月前
|
消息中间件 存储 中间件
中间件使用统一的标准和协议
【6月更文挑战第2天】
30 1
|
网络协议 Dubbo 应用服务中间件
【Eolink Apikit】API 接口主流协议解析
API 接口协议制定了接口信息的传递标准规范,不同的接口协议对接口管理工具来说都会拥有不同的底层功能逻辑。所以接口管理工具很难在短时间内完善的新增一种协议的文档管理和接口调试。 解密:目前市场上支持主流协议最全面的产品
201 0
【Eolink Apikit】API 接口主流协议解析
|
JSON 编解码 监控
2023年,真的需要Thrift这样一个RPC微服务框架来拯救一下传统HTTP接口(api)了
目前市面上类似Django的drf框架基于json的http接口解决方案大行其道,人们也热衷于在接口不多、系统与系统交互较少的情况下使用它,http接口的优点就是简单、直接、开发方便,门槛低,利用现成的http协议进行传输。
2023年,真的需要Thrift这样一个RPC微服务框架来拯救一下传统HTTP接口(api)了
|
Kubernetes API 网络架构
开发 k8s 管理平台 - k8sailor 05. RESTFul API 接口规范与请求应答约定
开发 k8s 管理平台 - k8sailor 05. RESTFul API 接口规范与请求应答约定
269 0
开发 k8s 管理平台 - k8sailor 05. RESTFul API 接口规范与请求应答约定
|
XML SQL JSON
开源SPL,WebService/Restful广泛应用于程序间通讯,如微服务、数据交换、公共或私有的数据服务等。
开源SPL,WebService/Restful广泛应用于程序间通讯,如微服务、数据交换、公共或私有的数据服务等。
127 0
开源SPL,WebService/Restful广泛应用于程序间通讯,如微服务、数据交换、公共或私有的数据服务等。