2016-07-11 66 views
0

我在wso2 esb中將json轉換爲json時出現了問題,實際上我在代理中使用了有效載荷工廠,我用休息和json內容調用代理。這是我的集成流程,我稱之爲代理,代理將請求(包含json內容)發送到jms消息存儲,然後我定義了一個消息處理器來消費來自消息存儲的消息並將它們發送到定義的端點(.net web API)。但問題是數字字符串會自動轉換爲整數元素:「orderId」:10000(我希望它是字符串「orderId」:「10000」),但是當我直接從代理髮送請求到我的終點(沒有使用消息代理)它工作正常。你能幫我解決這個問題嗎?wso2 esb json to json轉換雙引號缺失

回答

0

爲了您的問題需要更改JSON消息格式化程序。 請按照下面的步驟。

  • 改變你的工作目錄[ESB首頁] /repository/conf/axis2/axis2.xml

  • ,那麼你需要改變,而不是JsonStreamFormatter JSON消息格式化程序使用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"/> 
0

您可以使用下面的建設者和格式在axis2.xml

org.apache.synapse.commons.json.JsonStreamBuilder 
org.apache.synapse.commons.json.JsonStreamFormatter 

刪除現有的建設者和格式化爲 「應用/ JSON」,並添加以下。

下添加Formaters部分

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

下添加建設者部分

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

我這樣做過,但沒有任何反應,請你看看我的新[問題](http://stackoverflow.com/question s/38321898/wso2-esb-json-missing-quotes-and-brackets),我用更多的細節解釋了我的問題。謝謝 –