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"/>
当我为 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"/>