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

相关文章
|
存储 前端开发 Java
MyBatis 四大核心组件之 ResultSetHandler 源码解析
MyBatis 四大核心组件之 ResultSetHandler 源码解析
|
7月前
|
人工智能 Java API
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
|
SQL 安全 BI
基于jeecg-boot的nbcio-boot因升级mybatis-plus到3.5.3.1和JSQLParser 到4.6而引起的在线报表配置报错处理
基于jeecg-boot的nbcio-boot因升级mybatis-plus到3.5.3.1和JSQLParser 到4.6而引起的在线报表配置报错处理
337 0
|
存储 API 数据安全/隐私保护
MinIO安装教程(Window版本)
MinIO安装教程(Window版本)
1424 0
|
SQL 存储 Java
完整java开发中JDBC连接数据库代码和步骤
该博客文章详细介绍了使用JDBC连接数据库的完整步骤,包括加载JDBC驱动、提供连接URL、创建数据库连接、执行SQL语句、处理结果以及关闭JDBC对象的过程,并提供了相应的示例代码。
|
XML 安全 API
REST 和 SOAP API 有什么区别?
【8月更文挑战第31天】
706 0
|
关系型数据库 MySQL 分布式数据库
PolarDB支持哪些编程语言?
【5月更文挑战第12天】PolarDB支持哪些编程语言?
246 6
|
存储 SQL 机器学习/深度学习
MySQL高级篇——索引、视图、存储过程和函数、触发器的相关概念及操作(上)
MySQL高级篇——索引、视图、存储过程和函数、触发器的相关概念及操作(上)
MySQL高级篇——索引、视图、存储过程和函数、触发器的相关概念及操作(上)
|
缓存 监控 测试技术
ERP系统对接方案与API接口封装系列(高并发)
企业资源规划(ERP)系统是现代企业管理的核心,它集成了企业内部的各个部门和业务流程。为了实现ERP系统与其他外部系统或应用程序之间的数据交换和协作,需要对接方案。API(应用程序编程接口)是实现系统对接的常用方法之一。