2014-07-11 107 views
0

嘗試從平面文件中讀取數據,我需要跳過讀取器中的無效記錄。彈簧批次:從讀取跳過記錄

這是如何實現的?

問題:當我從無效記錄的T doRead()方法返回null時,它停止從那裏讀取文件。

任何幫助在這裏讚賞。

+0

通常你會在處理器中跳過這樣的記錄。這對你來說是一種選擇嗎? – reto

+0

行映射器試圖匹配行長度現在我可能會得到長度不合適的記錄可能是更少或更多的字符。我們可以做一些我們跳過那一行的映射嗎?這不可能。因此,線路映射器不必爲無效記錄工作。請建議。 – Bhavesh

+0

跳過無效記錄是什麼意思?由於業務邏輯或無效的語法/結構/記錄序列而無效? –

回答

0

有一些方法可以解決這個問題,最常見的解決方案是設置一些行可能是錯誤的(無效),所以當你配置塊時會有一個名爲「skip-limit」的屬性,如果你不要設置此屬性默認其cero(0),這就是問題發生在你身上。例如:

<tasklet> 
<chunk reader="reader" writer="writer" commit-interval="20" skip-limit="500"> 
<skippable-exception-classes> 
<include class="org.springframework.batch.item.file.FlatFileParseException" /> 
</skippable-exception-classes> 
</chunk> 
</tasklet>