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

相关文章
|
5月前
|
XML API 网络架构
API架构风格对比:SOAP vs REST vs GraphQL vs RPC
API架构风格对比:SOAP vs REST vs GraphQL vs RPC
93 2
|
5月前
|
XML 安全 API
REST 和 SOAP API 有什么区别?
【8月更文挑战第31天】
329 0
|
存储 前端开发 Java
极光推送REST API与Java后台对接
极光推送REST API与Java后台对接
310 0
|
网络协议 Dubbo 应用服务中间件
【Eolink Apikit】API 接口主流协议解析
API 接口协议制定了接口信息的传递标准规范,不同的接口协议对接口管理工具来说都会拥有不同的底层功能逻辑。所以接口管理工具很难在短时间内完善的新增一种协议的文档管理和接口调试。 解密:目前市场上支持主流协议最全面的产品
232 0
【Eolink Apikit】API 接口主流协议解析
|
XML JSON API
api接口对接如何实现,php如何对接api
API接口对接是现代软件开发中不可或缺的一部分,它允许不同的应用程序之间进行数据交换和服务调用。在PHP中,可以使用多种方式实现API接口的对接,包括基于HTTP协议的传统方法以及现代的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 接口规范与请求应答约定
304 0
开发 k8s 管理平台 - k8sailor 05. RESTFul API 接口规范与请求应答约定
|
编解码 监控
接口规范 11. 串流相关接口
11 串流相关接口 11.1.查询串流任务 用途查询服务器上的串流任务。 请求streamingMgr/?request=get_streaming&id=id 串流任务在服务器上的唯一编号,省略时会返回所有任务的列表。
1225 0
接口规范 3.应用相关接口
3.application相关接口 3.1.查询应用接口 用途查询服务器上的应用(application)。 请求appMgr/?request=get&token=abcetoken 是在登录认证接口中获得的token值。
1199 0