收到事件后调用mule 3文件传输

收到事件后调用mule 3文件传输,mule,Mule,我使用mule 3.3.1 CE 我有一个场景,当消息负载为SUCCESS string时,从备份目录读取*.json文件 这是我的mule配置: 根据这个错误,我知道file:inbound端点位于错误的位置 我的问题是,一旦mule消息负载成功,我如何告诉mule file transport读取文件。您可以在流中放置入站端点。入站端点是消息源,因此必须放在流的开头 解决您的问题有很多可行的选择,但我推荐以下两种: 将文件入站端点放入已初始化停止的流中,并使用此处所示的方法启动/停止此流

我使用mule 3.3.1 CE

我有一个场景,当消息负载为SUCCESS string时,从备份目录读取*.json文件

这是我的mule配置:


根据这个错误,我知道file:inbound端点位于错误的位置


我的问题是,一旦mule消息负载成功,我如何告诉mule file transport读取文件。

您可以在流中放置入站端点。入站端点是消息源,因此必须放在流的开头

解决您的问题有很多可行的选择,但我推荐以下两种:

  • 将文件入站端点放入已初始化停止的流中,并使用此处所示的方法启动/停止此流:问题是您需要找到一个好时机来停止此流,可能是通过让另一个流充当目录上的观察者
  • 将上述配置中的文件入站端点替换为自定义组件(Java或脚本化),该组件以编程方式使用MuleClient to
    request()
    目标目录中的文件,并将这些文件分派给负责处理这些文件的另一个流

您可以在流中放置入站端点,就像您尝试做的那样。入站端点是消息源,因此必须放在流的开头

解决您的问题有很多可行的选择,但我推荐以下两种:

  • 将文件入站端点放入已初始化停止的流中,并使用此处所示的方法启动/停止此流:问题是您需要找到一个好时机来停止此流,可能是通过让另一个流充当目录上的观察者
  • 将上述配置中的文件入站端点替换为自定义组件(Java或脚本化),该组件以编程方式使用MuleClient to
    request()
    目标目录中的文件,并将这些文件分派给负责处理这些文件的另一个流

您希望
文件:入站端点
何时停止从指定目录读取JSON文件?您是否有其他事件使其停止?@DavidDossot一旦目录为空,它将停止。如果我错了,请纠正我入站端点始终保持轮询,当目录为空时它不会停止轮询。顺便说一句,
#[message.payload=='SUCCESS']
可能是您想要的(您缺少了成功的
'
)。您希望
文件:入站端点
何时停止从指定目录读取JSON文件?您是否有其他事件使其停止?@DavidDossot一旦目录为空,它将停止。如果我错了,请纠正我入站端点始终保持轮询,当目录为空时它不会停止轮询。顺便说一句,
#[message.payload=='SUCCESS']
可能是您想要的(您缺少了成功的
'
)。有没有办法检查是否已经启动了与您在此处发布的流程类似的流程?是的!在
org.mule.construct.Flow
上有一个
isStarted()
方法:我实现了第一个建议,并且成功了。感谢您的支持。是否有办法检查流程是否已经启动,与您在此处发布的流程类似?是的!在
org.mule.construct.Flow
上有一个
isStart()
方法:我实现了第一个建议,它成功了。感谢您的支持。
<flow>
    ...
    <flow-ref name="auditTrailFlow"/>
    <flow-ref name="auditTrailBackupFlow"/>
</flow>

<sub-flow name="auditTrailBackupFlow">
 /// returns SUCCESS
</sub-flow>

<sub-flow name="auditTrailBackupFlow">
            <description>
                Resending backup AuditTrail JSON's objects to db
            </description>
            <choice>
                <when expression="#[message.payload == SUCCESS]">
                    <logger level="INFO" message="Checking audittrail backup directory"/>
                    <file:inbound-endpoint connector-ref="in" path="${audittrail.backup.dir}">
                        <file:filename-wildcard-filter pattern="*.json" caseSensitive="true" />
                    </file:inbound-endpoint>
                    <not-filter>
                        <filter ref="nullPayloadFilter"/>
                    </not-filter>
                    <json:json-to-object-transformer targetClass="com.company.AuditTrail"/>
                    // updates db
                </when>
                <otherwise>
                    // do something
                </otherwise>
            </choice>
</sub-flow>
Invalid content was found starting with element 'file:inbound-endpoint'.