我在特定目录中有一个文本文件。我必须阅读该文件的内容并为此进行API调用。
但是得到以下信息
org.mule.routing.ExpressionSplitter:表达式不会计算为可拆分的类型:[B
下面是mule xml内容。有人可以帮助我吗?
<file:connector name="File_Input" autoDelete="false" streaming="true" validateConnections="true" doc:name="File"/>
<flow name="testxmlFlow1" doc:name="testxmlFlow1">
<file:inbound-endpoint path="C:\mule_program_test\input" responseTimeout="10000" doc:name="File" moveToPattern="data.txt" connector-ref="File_Input"></file:inbound-endpoint>
<file:file-to-byte-array-transformer doc:name="File to Byte Array"/>
<foreach doc:name="For Each" collection="#[payload]">
<logger message="Messagesssssssssssssss" level="INFO" doc:name="Logger"/>
</foreach>
</flow>
答案 0 :(得分:1)
您不需要使用foreach依次处理每个文件,因为文件连接器会为它在目录中发现的每个文件生成一条消息。您的流将针对放置在该目录中的每个文件运行。
此外,文件连接器根据其pollingFrequency,通过每隔一段时间检查新文件来监视目录。由于您还没有指定,我认为默认值是1000毫秒,这意味着它将每秒处理一次目录中的所有文件。此外,您已配置autoDelete =&#34; false&#34;并且尚未配置moveToDirectory。这意味着文件在处理后将保留在目录C:\ mule_program_test \ input中,因此每个轮询周期都会再次处理它们。
如果您只想处理每个文件一次,请使用moveToDirectory和/或autoDelete确保在下一轮询周期内不再处理它。