2016-09-13 20 views
2

在我第一步與Mule我正在寫一個基本的Http代理。 目前我將請求轉發給api服務器,我想要做的是在響應客戶端之前閱讀從它接收到的有效負載。如何將org.glassfish.grizzly.utils.BufferInputStream轉換爲Mule中的JSON?

當我試着使用#記錄它[有效載荷]它打印

[email protected] 

我怎樣才能正確地打印在JSON格式?

的完整代碼:

<flow name="proxy"> 
    <http:listener config-ref="http-lc-0.0.0.0-8081" path="![p['proxy.path']]" parseRequest="false"/> 

    <http:request config-ref="http-request-config" method="#[message.inboundProperties['http.method']]" 
        path="#[message.inboundProperties['http.request.path'].substring(message.inboundProperties['http.listener.path'].length()-2)]" parseResponse="false"> 
     <http:request-builder> 
      <http:query-params expression="#[message.inboundProperties.'http.query.params']"/> 
     </http:request-builder> 
     <http:success-status-code-validator values="0..599" /> 
    </http:request> 

    <logger doc:name="Logger" level="INFO" message="Payload #[payload]"/> 

回答

3

嘗試#[message.payloadAs(java.lang.String)]這將記錄期望的輸出。

希望這會有所幫助。

0

在HTTP部件將發送爲InputStream的,因此,使用字節數組串 transfor如果你只是想打印,你可以使用#[message.payloadAs(java.lang.String)],但你想做任何操作只需拖放一個字節數組到字符串變壓器

0

最簡單的方法是在http請求組件後僅使用<object-to-string-transformer doc:name="Object to String"/>,然後將日誌記錄與#[payload]