wso2 esb json 到 json 转换缺少双引号

wso2 esb json to json converting double quotes missing

我在 wso2 esb 中将 json 转换为 json 时遇到问题,实际上我在代理中使用有效载荷工厂,我用 rest 和 json 内容调用代理.这是我的集成流程,我调用代理,代理将请求(带有 json 内容)发送到 jms 消息存储,然后我定义了一个消息处理器来使用来自消息存储的消息并将它们发送到定义的端点(.net 网站 api)。但问题是带有数字的字符串会自动转换为整数元素:"orderId": 10000(我希望它是字符串 "orderId": "10000"),但是当我将请求直接从代理发送到我的端点(不使用消息代理)它工作正常。你能帮我解决这个问题吗?

针对您的问题,需要更改 JSON 消息格式化程序。 请按照以下步骤操作。

  • 将您的工作目录更改为 [ESB 主页]/repository/conf/axis2/axis2。xml

  • 然后您需要更改 JSON Message Formatters 而不是 JsonStreamFormatter 使用 org.apache.axis2.json.JSONMessageFormatter.

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

您可以在 axis2.xml

中使用以下构建器和格式化程序
org.apache.synapse.commons.json.JsonStreamBuilder
org.apache.synapse.commons.json.JsonStreamFormatter

删除 "application/json" 的现有构建器和格式化程序并添加以下内容。

在格式化部分下添加

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

在构建器部分下添加

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

有关此问题的更多详细信息,请参阅 ,看起来这是 wso2 esb 4.9.0 中的错误 wso2 jira