Java 如何在Mule ESB中将文件转换为字节数组?

Java 如何在Mule ESB中将文件转换为字节数组?,java,image-processing,mule,mule-studio,Java,Image Processing,Mule,Mule Studio,我正在将一个png文件发布到Mule中的HTTP入站端点。我想使用Java处理文件,并将修改后的图像存储在数据库中。我是否需要显式地将图像转换为另一种格式(例如,使用Java对象将图像转换为字节数组),或者Mule中是否有更简化的方法将图像传递给我的Java bean进行处理?Mule代码示例将非常有用 ---更新--- 根据乍得在下面的回应,这是解决问题的方法吗?不过,我不确定代码将如何将其传递给我的JavaBean <flow name="flow1" doc:name="flow1"

我正在将一个png文件发布到Mule中的HTTP入站端点。我想使用Java处理文件,并将修改后的图像存储在数据库中。我是否需要显式地将图像转换为另一种格式(例如,使用Java对象将图像转换为字节数组),或者Mule中是否有更简化的方法将图像传递给我的Java bean进行处理?Mule代码示例将非常有用

---更新---

根据乍得在下面的回应,这是解决问题的方法吗?不过,我不确定代码将如何将其传递给我的JavaBean

<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,因此您可能需要执行一个命令来获取字节[](如果您需要的话)

然而,根据您的用例,这可能会成为内存问题。如果我正在处理大量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>

嗨,查德,谢谢你。我用你的建议更新了我的问题。这个例子符合你的建议吗?将它传递给我的JavaBean的代码是什么样子的?它是否与代码“public void process(@Payload byteArrayImage)”中的代码类似?
public class CustomComponent implements Callable {
  public Object onCall(MuleEventContext eventContext) throws Exception {
    //Get at the payload by eventContext.getMessage().getPayload()
    return eventContext.getMessage();
  }
}