我们正在使用WSO2 ESB 4.7.0和WSO2 API Manager 1.6.0
我有一个API定义了ESB,它接受PUT请求并将其处理到后端系统并将响应发送回成功。
如果我使用soap客户端或Advanced Rest Client,API工作正常。 请求网址:http://:/ CurriculumAdmin / Terms / 2010 / Classes / 11513 / LMSURL?LMSURL = KRanthiPUTARCAPI
响应: 状态200确定
但是如果我使用WSO2 API管理器创建一个API并使用那里的try it选项,我会收到202响应
请求网址: HTTPS://:/TestURL/v1.0/Terms/2010/Classes/11513/LMSURL LMSURL = KranthiTestAPI
TestURL / v1.0是我的API的上下文根/资源。
响应: 响应机构
响应代码 202
我可以看到响应一直持续到ESB,但是ESB对请求没有做任何事情,只是发回202的响应代码..
任何建议/帮助都非常感谢。
由于 Kranthi
答案 0 :(得分:0)
由于WSO2 API Manager默认设置的参数,会出现此问题。
转至/usr/local/wso2/wso2am-1.6.0/repository/deployment/server/synapse-configs/default/api 打开相应API的.xml文件,然后删除以下行。
<property name="POST_TO_URI" value="true" scope="axis2"/>
此参数默认由API管理器设置。 WSO2将在1.8.0版中对其产品API管理器进行修复,不将此属性设置为默认值。
ESB日志更改前: TID:[0] [ESB] [2014-10-27 11:16:18,068] DEBUG {org.apache.synapse.transport.http.wire} - &gt;&gt; &#34; PUT http://:/ CurriculumAdmin / Terms / 2010 / Classes / 11513 / LMSURL?LMSURL = www HTTP / 1.1 [\ r] [\ n]&#34; {org.apache.synapse.transport.http.wire}
观察发送给ESB的请求中出现的主机名和端口号
ESB日志更改后: TID:[0] [ESB] [2014-10-27 11:24:54,478] DEBUG {org.apache.synapse.transport.http.wire} - &gt;&gt; &#34; PUT / CurriculumAdmin / Terms / 2010 / Classes / 11513 / LMSURL?LMSURL = www HTTP / 1.1 [\ r] [\ n]&#34; {org.apache.synapse.transport.http.wire}
从网址中删除主机名和端口号。
这很好用,因此问题得到了解决。希望它对某人有用..
由于 Kranthi