我在wso2 esb中将json转换为json时出现问题,实际上我在代理中使用了有效负载工厂,并且我使用rest和json内容调用代理。这是我的集成流程,我调用代理并且代理将请求(带有json内容)发送到jms消息存储库然后,我定义了一个消息处理器来使用来自消息存储库的消息并将它们发送到定义的端点(.net web API)。但问题是数字字符串自动转换为整数元素:“orderId”:10000(我希望它是字符串“orderId”:“10000”),但是当我直接从代理发送请求到我的终点(没有使用消息代理)它正常工作。你能帮我解决这个问题吗?
答案 0 :(得分:1)
有关详细信息,请参阅此问题的my question with more details,看起来这是wso2 esb 4.9.0中的错误 wso2 jira
答案 1 :(得分:0)
您的问题需要更改JSON消息格式化程序。 请按照以下步骤进行操作。
将您的工作目录更改为[ESB Home] /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"/>
答案 2 :(得分:0)
您可以在axis2.xml中使用以下构建器和格式化程序
org.apache.synapse.commons.json.JsonStreamBuilder
org.apache.synapse.commons.json.JsonStreamFormatter
删除“application / json”的现有构建器和格式化程序,并添加以下内容。
在Formaters部分下添加
<messageFormatter contentType="application/json"
class="org.apache.synapse.commons.json.JsonStreamFormatter"/>
在“建筑商”部分下添加
<messageBuilder contentType="application/json"
class="org.apache.synapse.commons.json.JsonStreamBuilder"/>