2011-02-15 29 views
1

我有以下代碼:Spring Batch的FlatFileItemWriter留下的空文件

File overitimeFile = new File(filePath+overtimeFileName); 
FlatFileItemWriter<OvertimeSAPExport> overtimeItemWriter = 
             new FlatFileItemWriter<OvertimeSAPExport>(); 
overtimeItemWriter.setResource(new FileSystemResource(overitimeFile)); 
overtimeItemWriter.setShouldDeleteIfExists(true); 
PassThroughLineAggregator<OvertimeSAPExport> lineAggregator = 
             new PassThroughLineAggregator<OvertimeSAPExport>(); 
overtimeItemWriter.setLineAggregator(lineAggregator); 
overtimeItemWriter.open(new ExecutionContext()); 

List<OvertimeSAPExport> overtimeList = overtimeDAO.getSapOvertimeData(locationId, month); 
overtimeItemWriter.write(overtimeList); 

我已經實現了toString方法OvertimeSAPExport,當我調試,我可以看到它進入的toString一次爲每個記錄在列表中,從它得到正確的字符串。 它也創建沒有問題的文件,並且不會以我的方式引發異常,但是當我查看文件時,它是空的。

有人能告訴我我的錯誤在哪裏嗎?

回答

0

嘗試overtimeItemWriter.close();並查看文件是否在磁盤上刷新。您還需要驗證是否推遲了寫作的交易。