WSO2 API 启用缓存时管理器使用错误

WSO2 API Manager Consume Error While Caching is enabled

当我为 API 启用缓存并尝试使用它时,我收到响应代码错误 500 和描述 - "Error while building message"。当缓存关闭时,响应工作正常。有什么想法吗?

如果您将空值传递给 POST 请求的请求正文,则可能会发生此错误。因为默认的 JSON 构建器试图将 JSON 转换为 XML 并且您在转换空消息时会看到此错误。

如果您要为 post 请求发送空主体,请使用以下步骤将构建器和格式化程序更改为 JsonStreamBuilder 和 JsonStreamFormatter。

1) 打开位于 (APIM_HOME)/repository/conf/axis2 文件夹中的 axis2.xml 并注释默认的 JSON 构建器和格式化程序。

<!--messageBuilder contentType="application/json"
      class="org.apache.synapse.commons.json.JsonBuilder"/-->

<!--messageFormatter contentType="application/json"
      class="org.apache.synapse.commons.json.JsonFormatter"/-->

2) 取消注释 JsonStreamBuilder 和 JsonStreamFormatter。

<messageBuilder contentType="application/json"
      class="org.apache.synapse.commons.json.JsonStreamBuilder"/>

<messageFormatter contentType="application/json"
      class="org.apache.synapse.commons.json.JsonStreamFormatter"/>