【问题标题】:WSO2 ESB doesn't process Put request from API storeWSO2 ESB 不处理来自 API 存储的 Put 请求
【发布时间】:2014-10-20 18:19:08
【问题描述】:

我们正在使用 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 的响应代码..

非常感谢任何建议/帮助。

谢谢 克兰蒂

【问题讨论】:

    标签: api wso2 wso2esb put wso2-am


    【解决方案1】:

    此问题是由 WSO2 API 管理器默认设置的参数引起的。

    转到 /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 manager 设置。 WSO2 将在 1.8.0 版中对其产品 API 管理器进行修复,以不将此属性设置为默认值。

    更改前的 ESB 日志: TID:[0] [ESB] [2014-10-27 11:16:18,068] 调试 {org.apache.synapse.transport.http.wire} - >> "PUT http://:/CurriculumAdmin/Terms/2010 /Classes/11513/LMSURL?LMSURL=www HTTP/1.1[\r][\n]" {org.apache.synapse.transport.http.wire}

    观察发送到 ESB 的请求中出现的主机名和端口号

    更改后的 ESB 日志: TID:[0] [ESB] [2014-10-27 11:24:54,478] 调试 {org.apache.synapse.transport.http.wire} - >> “PUT /CurriculumAdmin/Terms/2010/Classes/11513/ LMSURL?LMSURL=www HTTP/1.1[\r][\n]" {org.apache.synapse.transport.http.wire}

    从 URL 中删除主机名和端口号。

    这工作正常,因此问题得到解决。希望它对某人有用..

    谢谢 克兰蒂

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-06
      • 2014-08-26
      • 1970-01-01
      相关资源
      最近更新 更多