mule move pdf,ppt file .mulerequesteor

时间:2015-04-04 14:25:43

标签: mule mule-studio

<mulerequester:request config-ref="Mule_Requester1" resource="file:///#[flowVars.filename]" doc:name="Mule Requester"/>
 <object-to-byte-array-transformer/>
 <file:outbound-endpoint path="C:\OUTPUT"  responseTimeout="10000" doc:name="Filewrite" outputPattern="#[flowVars.inpfilename]"/>

请注意以下几点

以上流程将在C:\ OUTPUT文件夹中创建格式已损坏的文件(pdf,ppt,image)

**

有没有其他方法可以将pdf,ppt文件移动到仅使用muletrequester的其他文件夹。因为这是我的requiremnet

**。我要移动的文件,如pdf,ppt,image等。

任何人都建议解决方案

1 个答案:

答案 0 :(得分:0)

mule requestster module 中可能存在错误导致此问题,我已针对此问题报告 Jira < / p>

替代解决方案可以是: - 创建一个单独的流并定义一个文件入站端点,它将获取文件并分派到该流中的文件出站端点。现在,使 flow =“stopped”的初始状态,并且,在文件出站后的流程结束时使用以下表达式: -

<scripting:component>
    <scripting:script engine="groovy">
        muleContext.registry.lookupFlowConstruct('targetFlow').stop()
    </scripting:script>
</scripting:component>

现在,这将在文件被分派到出站位置后停止流程

现在使用flow-ref来从主流中调用此流程 由于此流程的初始状态已停止,因此只有当您使用主流程中的flow-ref调用此流程时才会激活此流程,并且当您在上面显示的文件出站端点之后使用脚本组件时将再次取消激活< / p>

<强>已更新 请根据您的要求尝试以下示例

    <flow name="mainflow" doc:name="mainflow">
<!-- your previous code -->
    <foreach collection="#[payload]" doc:name="For Each">
      <flow-ref name="fileFlow" doc:name="Flow Reference"/>
     </foreach>
    </flow>

    <flow name="fileFlow" doc:name="fileFlow" initialState="stopped">
    <!--Here your file inbound with use sessionVar as path instead of flowVars-->
    <!-- file outbound and path as sessionVar --> 
    <scripting:component>
        <scripting:script engine="groovy">
            muleContext.registry.lookupFlowConstruct('fileFlow').start()
        </scripting:script>
    </scripting:component>
    </flow>