You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Spring Boot REST API向第三方接口发送SOAP请求并获取XML数据

Spring Boot 调用第三方SOAP接口实现方案

首选生产级实现:Spring Web Services(Spring-WS)

该组件是Spring官方原生提供的SOAP交互工具,和Spring Boot生态完全适配,无需手动处理XML拼接/解析逻辑:

  • 第一步:引入基础依赖
    Maven项目在pom.xml中引入 starter 即可:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web-services</artifactId>
    </dependency>
    
    需要根据WSDL自动生成实体的场景,可额外配置jaxb2-maven-plugin插件,一键生成请求/响应对应的Java类。
  • 第二步:配置核心调用类WebServiceTemplate
    可以类比你熟悉的RestTemplate,是SOAP请求的核心执行工具,参考配置示例:
    @Configuration
    public class SoapClientConfig {
        @Bean
        public WebServiceTemplate webServiceTemplate() {
            WebServiceTemplate template = new WebServiceTemplate();
            template.setDefaultUri("第三方SOAP接口地址");
            template.setMarshaller(jaxb2Marshaller());
            template.setUnmarshaller(jaxb2Marshaller());
            return template;
        }
        @Bean
        public Jaxb2Marshaller jaxb2Marshaller() {
            Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
            // 配置自动生成的实体类所在包路径
            marshaller.setPackagesToScan("com.xxx.soap.entity");
            return marshaller;
        }
    }
    
  • 第三步:发起调用
    直接调用webServiceTemplate.marshalSendAndReceive(请求实体)方法,底层会自动完成SOAP报文封装、序列化、请求发送、响应反序列化全流程,直接返回映射好的Java响应对象。
    该方案是官方推荐的标准实现,适合SOAP接口调用量多、对稳定性要求高的场景

轻量替代方案:手动拼接报文调用

如果只有1-2个简单SOAP接口需要调用,不想引入整套Spring-WS依赖,可以用你熟悉的HTTP客户端直接调用:

  • 按照SOAP协议规范拼接XML请求报文,填充业务参数
  • 配置请求头:指定Content-Type: text/xml;charset=utf-8,部分接口需要额外配置SOAPAction请求头
  • 用RestTemplate或OkHttp发起POST请求,拿到返回的XML字符串后,用JAXB或Jackson XML模块反序列化为Java对象即可

核心学习要点

  • 先掌握SOAP基础协议:重点了解WSDL文件结构、SOAP信封(Envelope)、Header、Body的组成规则,避免参数位置填错导致调用失败
  • 学习JAXB注解使用:作为Java生态标准的XML-对象映射工具,两种实现方案都需要用到
  • 调试技巧:可以先用SoapUI工具先测通第三方接口,确认请求格式、参数、头信息都正确后再写代码,能大幅降低调试成本
  • 常见坑提示:重点关注XML命名空间(Namespace)配置,绝大多数调用失败都是命名空间不匹配导致;返回报文如果含特殊字符要提前处理编码,避免解析异常

内容的提问来源于stack exchange,提问作者SpringBootDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 18:45:05