簡體   English   中英

如何在Mule ESB中將文件轉換為字節數組?

[英]How to convert a file to a byte array in Mule ESB?

我正在將png文件發布到Mule中的HTTP入站終結點。 我想使用Java處理文件並將更改后的圖像存儲在數據庫中。 我是否需要顯式地將圖像轉換為另一種格式(例如,使用Java對象轉換為字節數組),還是在Mule中使用更簡化的方法將圖像傳遞給Java Bean進行處理? Mule代碼示例將很有幫助。

-更新-

根據乍得的以下回應,這是處理方式嗎? 我不確定代碼如何將其傳遞給我的Java bean。

<flow name="flow1" doc:name="flow1">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" doc:name="HTTP"/>
    <object-to-byte-array-transformer doc:name="Object to Byte Array"/>
    <???>
</flow>

我相信您的有效載荷將是InputStream,因此您可能想要執行<object-to-byte-array-transformer />以獲取byte [](如果需要的話)。

但是,根據您的用例,這可能會成為內存問題。 如果我要處理大量500MB圖像,那么將所有這些圖像存儲在內存中可能會引起問題:)

因此,將它們轉儲到文件中並處理文件可能是另一種可能性。


更新:組件和變壓器之間會有所不同,但這是一個示例:

<flow name="flow1">
  <http:inbound-endpoint host="localhost" port="8081"/>
  <object-to-byte-array-transformer doc:name="Object to Byte Array"/>
  <component>
    <singleton-object class="com.my.CustomComponent"/>
  </component>
</flow>

那么一個類將是這樣的:

public class CustomComponent implements Callable {
  public Object onCall(MuleEventContext eventContext) throws Exception {
    //Get at the payload by eventContext.getMessage().getPayload()
    return eventContext.getMessage();
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM