【发布时间】:2021-01-12 14:40:07
【问题描述】:
我正在尝试通过 Spring Boot 应用程序进行 SOAP 调用。调用返回状态码 400 和没有内容的 SOAP 信封。当响应由 WebServiceTemplate 处理时,它被描述为错误而不是错误,并且我试图访问的 SOAP Web 服务似乎根本无法识别该请求。响应如下所示:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body/>
</SOAP-ENV:Envelope>
我已经调试了请求,并在 postman / insomnia 中重新创建了它。从任一请求工具发布时,它似乎工作正常。即使我为 HTTP 标头或 xml 正文发送垃圾值,我也会收到如下响应以及代码 400:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>RequestDataInvalid Request data is invalid.</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
即使请求包含非法值,我尝试访问的网络服务似乎至少可以识别该请求。
错误和故障有什么区别?解决问题的一大步是知道为什么我的无效请求被认为是错误而不是错误。这可能与连接/网络问题有关吗?查看 SOAP Web 服务 URL 时,该服务似乎与 Microsoft Dynamics Business Central 有某种关系。
【问题讨论】: