WSO2 ESB不处理来自API存储的Put请求

时间:2014-10-20 18:19:09

标签: api wso2 wso2esb put wso2-am

我们正在使用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

1 个答案:

答案 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