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

Spring Boot SOAP WebService新增接口404/405问题求助

Spring Boot SOAP WebService 404/405 错误排查步骤

1. 校验XSD与生成类的一致性

  • 确认AddRequest的命名空间和元素名在XSD中定义正确,检查生成的Java类上的@XmlRootElement/@XmlType注解,确保命名空间与XSD完全匹配
  • 查看Maven/Gradle构建日志,确认生成Java类过程中无语法错误,XSD里AddRequest的结构(如字段、嵌套元素)完整合法

2. 检查Endpoint注解配置

  • 核对CalculatorEndpoint中处理AddRequest的方法:
    • @PayloadRoot的namespace必须严格匹配XSD中AddRequest的命名空间,localPart必须是XSD中定义的元素名(如AddRequest)
    • 方法参数需使用@RequestPayload注解绑定生成的AddRequest类,返回值需用@ResponsePayload绑定对应的AddResponse类
  • 确认CalculatorEndpoint类已被Spring扫描(添加@Endpoint或@Component注解,且启动类扫描路径包含该类所在包)

3. 验证SOAP请求的匹配规则

  • 对比正常工作的StudentDetailRequest请求结构,检查SoapUI中AddRequest的SOAP信封:
    • Body内的AddRequest元素必须携带正确的命名空间前缀,且命名空间与Endpoint的@PayloadRoot配置一致,示例:
      <soapenv:Body>
          <ns:AddRequest xmlns:ns="http://your-namespace-url">
              <!-- 请求参数 -->
          </ns:AddRequest>
      </soapenv:Body>
      
    • 确保请求参数结构与XSD定义完全匹配,无多余/缺失的字段

4. 排查Spring WS配置类

  • 检查继承WsConfigurerAdapter的配置类:
    • DefaultWsdl11Definition Bean是否正确关联了修改后的XSD,setSchema方法指定的XSD路径是否正确
    • setLocationUri的值需与Endpoint的映射路径一致(如/ws/calculator-service),确保WSDL生成的port地址指向正确接口
  • 确认messageDispatcherServlet的映射路径配置无误,未与其他请求路径冲突

5. 解决405错误

  • 405表示HTTP方法不允许:Spring SOAP服务仅接受POST请求,直接用GET访问/ws/calculator-service会触发该错误
  • 检查SoapUI的请求方法是否设置为POST,避免误选GET

6. 开启日志调试定位问题

在application.properties中添加日志配置,打印SOAP请求的详细处理流程:

logging.level.org.springframework.ws=TRACE
logging.level.org.springframework.ws.server.MessageTracing=TRACE

通过日志可查看:Spring WS是否接收到请求、是否匹配到对应Endpoint、请求报文是否符合契约规范

7. 校验WSDL的完整性

访问http://localhost:8080/ws/CalculatorServiceWsdl.wsdl,确认:

  • WSDL中包含AddRequest和AddResponse的类型定义
  • port的地址正确指向/ws/calculator-service
  • 若WSDL无新增操作,说明XSD未被正确关联到WsdlDefinition,需检查配置类中的XSD引用路径

内容的提问来源于stack exchange,提问作者Papp Zoltán

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 07:20:00