1

次のコードがあります。

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);

OvertimeSAPExport の toString メソッドを実装しました。デバッグすると、リスト内のレコードごとに 1 回 toString に入り、そこから正しい文字列を取得することがわかります。また、問題なくファイルを作成し、私のやり方で例外をスローしませんが、ファイルを見ると空です。

誰かが私の間違いを教えてください。

4

1 に答える 1

0

overtimeItemWriter.close(); を試してください。ファイルがディスクにフラッシュされているかどうかを確認します。また、書き込みを延期したトランザクションが進行中かどうかを検証する必要があります。

于 2011-02-17T21:25:01.390 に答える