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

Spring Boot 3.1.9调用SOAP接口报SAAJ错误求助

Spring Boot 3.1.9 SOAP调用SAAJ0539/SAAJ0540错误排查方案
  • 对齐SAAJ依赖版本
    Spring Boot 3.x基于Jakarta EE 9+,必须使用Jakarta版本的SAAJ依赖,避免与旧javax版本冲突。在pom.xml中明确指定适配版本,并排除可能的冲突依赖:
<!-- 引入正确的SAAJ依赖 -->
<dependency>
    <groupId>com.sun.xml.messaging.saaj</groupId>
    <artifactId>saaj-impl</artifactId>
    <version>3.0.3</version> <!-- 适配Spring Boot 3.1.x的稳定版本 -->
</dependency>

<!-- 排除spring-boot-starter-web-services中自带的可能冲突的SAAJ依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web-services</artifactId>
    <exclusions>
        <exclusion>
            <groupId>com.sun.xml.messaging.saaj</groupId>
            <artifactId>saaj-impl</artifactId>
        </exclusion>
    </exclusions>
</dependency>
  • 强制禁用多部分消息格式
    多部分消息处理异常常源于格式协商问题,可在SOAP客户端配置中强制使用单部分消息格式:
@Bean
public WebServiceTemplate webServiceTemplate() {
    WebServiceTemplate template = new WebServiceTemplate();
    
    // 配置消息工厂,指定SOAP版本并禁用多部分支持
    SaajSoapMessageFactory messageFactory = new SaajSoapMessageFactory();
    messageFactory.setSoapVersion(SoapVersion.SOAP_11);
    messageFactory.setMessageFactory(new com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl());
    template.setMessageFactory(messageFactory);
    
    return template;
}
  • 排查类加载器冲突
    用Maven命令扫描依赖树,确认是否存在旧版XML/SAAJ相关依赖:
mvn dependency:tree | grep -i saaj
mvn dependency:tree | grep -i xml

找到冲突依赖后,在对应依赖项中执行排除操作。

  • 校验SOAP请求内容
    启用SOAP日志查看实际请求结构,排查是否存在格式错误或特殊字符:
<bean id="payloadLogger" class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor"/>

<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
    <property name="interceptors">
        <list>
            <ref bean="payloadLogger"/>
        </list>
    </property>
</bean>

确认请求头、请求体完全符合WSDL定义的规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 11:44:58