骡子 foreach : Splitter returned no results

标签 mule mule-studio

我在 amazon S3 上获取文件列表并遍历文件列表并一次处理一个文件。对应流程如下--

<flow name="process-from-s3" doc:name="process-from-s3"
    processingStrategy="synchronous">
    <poll doc:name="Poll" frequency="${s3-poll-interval}">
        <s3:list-objects config-ref="Amazon_S3" doc:name="Get List of files"
            accessKey="${s3-access-key}" secretKey="${s3-secret-key}"
            bucketName="${s3-read-bucket}" />
    </poll>
    <choice doc:name="Choice">
            <foreach doc:name="For Each">
                <set-session-variable variableName="s3_file_name" value="#[payload.getKey()]" doc:name="Session Variable"/>
                <logger message="From bucket ( ${s3-read-bucket} ), received the file #[s3_file_name]" level="INFO" doc:name="Logger"/>
                <flow-ref name="process_s3_file" doc:name="Flow Reference"/>
            </foreach>
    </choice>
</flow>

流程运行良好,但如果未找到文件,它会继续吐出以下日志语句。

[03-06 21:52:05] WARN  Foreach$CollectionMapSplitter   
[[myapp].connector.polling.mule.default.receiver.01]: Splitter returned no results. 
If this is not expected, please check your split expression

我怎样才能避免这个烦人的日志消息。如果列表中至少有一个元素,我是否应该将 foreach 包装在一个处理 foreach 的选择路由器中。欢迎提出任何建议。

最佳答案

我宁愿将 org.mule.routing.Foreach$CollectionMapSplitter 的日志级别设置为 ERROR,也不愿为此警告配置任何其他逻辑。参见 Mule docs如果需要,用于配置 logger/log4j。

关于骡子 foreach : Splitter returned no results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22241183/

相关文章:

mule - 在 Mule 中,如何重复调用 Web 服务并返回结果的聚合?

java - Mule ESB + TOMCAT Web 应用集成

xml - Dataweave - 循环深度映射 XML

mule - 如何通过以下流程纠正问题?

java - 如何将 Mule ESB 中的数据映射器转换为多个连接器以使用社区运行时?

mule - 'SEDA Stage PA_Trans.stage1' 的队列在 30000 毫秒内未接受新事件。消息负载的类型为 : CaseInsensitiveHashMap

java - Spring3 依赖注入(inject)不适用于 mule

gradle - gradle:将zip复制到mule应用

java - Mule 内部生命周期 - 当我们启动 mule 时会发生什么

java - 全新下载 -> 错误 : "MuleStudio.app is damaged and can' t be opened. "