如何从文件中获取原始文件:mule中的outbound-endpoint

时间:2013-09-13 16:42:09

标签: mule

在下面的流程中:

<flow name="fileFlow">
    <file:inbound-endpoint path="/inbound/ftp/sbc" pollingFrequency="30000" fileAge="30000" moveToDirectory="/inbound/ftp/sbc/archive">
        <file:filename-wildcard-filter pattern="*.xml" caseSensitive="false"/>
    </file:inbound-endpoint>
    <logger message="Entering #[flow.name] flow" level="INFO"/>
    <component class="com.abc.RequestFile"/>
    <logger message="Payload after transformation is: #[payload] flow" level="INFO"/>
     <vm:outbound-endpoint path="merge" />  
    <logger message="Exiting #[flow.name] flow" level="INFO"/>
</flow>

我从InputStream获得传递给file:inbound-endpoint组件的RequestFile。该组件需要返回一个文件列表,其中一个文件是原始文件读取和传递的文件。我正在寻找一种解决方案,而不是手动将InputStream复制到java组件中的File。

1 个答案:

答案 0 :(得分:6)

正如本回答https://stackoverflow.com/a/12397775/387927中所述,您可以使用此设置获取java.io.File对象而非其内容:

<file:connector name="fileConnector" streaming="false" autoDelete="false">
    <service-overrides messageFactory="org.mule.transport.file.FileMuleMessageFactory" />
</file:connector>

请注意,您可以在开始之前或完成处理之后移动/删除文件,否则Mule会一次又一次地轮询它。