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

在WSO2 API Manager 4.1中将WSDL1.1的SOAP API转REST时遇415错误

WSO2 API Manager将WSDL1.1 SOAP后端转为REST API时415错误解决方法

在WSO2 API Manager中尝试将基于WSDL 1.1版本的旧SOAP后端暴露为REST API时,出现Error: response status is 415错误。

相关Carbon日志

TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "POST /Amplitude-WS/public?wsdl HTTP/1.1[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "Origin: https://uib-as522.uib.socgen:9443[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "SOAPAction: [
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "Referer: https://uib-as522.uib.socgen:9443/[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "Sec-Fetch-Dest: empty[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "Sec-Fetch-Site: same-site[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "Accept-Encoding: gzip, deflate, br[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "accept: application/json[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "Sec-Fetch-Mode: cors[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "activityid: 083f1db3-599f-4c90-942c-31d1ed180b58[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "sec-ch-ua: "Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "sec-ch-ua-mobile: ?0[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "sec-ch-ua-platform: "Windows"[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "Content-Type: application/soap+xml[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "Transfer-Encoding: chunked[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "Host: uib-as150.uib.socgen:9443[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "Connection: Keep-Alive[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "User-Agent: Synapse-PT-HttpComponents-NIO[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "1ce[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://services.omnichannel.ws.uib.tn.com/"><soapenv:Body><web:BranchList><BranchListRequest><MessageHeader><RequestChannel>string</RequestChannel><InitialRequestId>string</InitialRequestId><RequestTime>string</RequestTime><RequestId>string</RequestId></MessageHeader></BranchListRequest></web:BranchList></soapenv:Body></soapenv:Envelope>[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "0[
][
]"
TID: [-1234] [] [2023-04-05 13:00:35,962] DEBUG {org.apache.synapse.transport.http.wire} - HTTPS-Sender I/O dispatcher-1 << "[
][
]"

错误原因分析

从日志能定位三个核心问题:

  1. Content-Type不匹配:请求使用application/soap+xml(SOAP 1.2标准内容类型),但后端基于WSDL 1.1,对应SOAP 1.1协议,要求的Content-Type是text/xml。
  2. SOAPAction头缺失:SOAP 1.1协议要求必须携带有效的SOAPAction头,日志中该字段为空。
  3. SOAP信封命名空间错误:请求中的SOAP信封使用SOAP 1.2的命名空间http://www.w3.org/2003/05/soap-envelope,而SOAP 1.1应使用http://schemas.xmlsoap.org/soap/envelope/。

解决步骤

  • 修改Content-Type配置:
    在WSO2 API Manager的API设计页面或自定义序列中,将发送至后端的请求Content-Type设置为text/xml。
  • 配置SOAPAction头:
    从WSDL 1.1的wsdl:operation节点下的soap:operation元素中获取soapAction属性值,为REST API对应的每个方法配置该SOAPAction头。
  • 修正SOAP信封命名空间:
    确保REST转SOAP的转换逻辑生成符合SOAP 1.1规范的信封,使用http://schemas.xmlsoap.org/soap/envelope/作为命名空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 13:27:01