2014-03-07 77 views
1

我得到了亞馬遜S3上的文件列表,並遍歷文件列表並一次處理一個文件。相應的流程如下 -Mule foreach:Splitter沒有返回任何結果

<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的選擇路由器中。歡迎任何建議。

回答

1

我寧願將org.mule.routing.Foreach$CollectionMapSplitter的日誌級別設置爲ERROR,而不是爲此警告配置任何其他邏輯。如果需要,請參閱Mule docs以配置記錄器/ log4j。

+0

我該怎麼做? –