当我为API启用缓存并尝试使用它时,我收到响应代码错误500,其中包含描述 - "构建消息时出现错误"。关闭缓存时,响应正常。有什么想法吗?
答案 0 :(得分:0)
如果要将空值传递给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"/>