Я ищу примеры реализации подпружиненного удаленного фрагментирования с помощью FlatFileItemWriter в Worker.
Я использую RabbitMQ, SpringBatch, Spring Integration.
С
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
Когда я попытался, я получил org.springframework.batch.integration.chunk.AsynchronousFailureException: сбой или прерывание, обнаруженное в обработчике:> org.springframework.batch.item.WriterNotOpenException: модуль записи должен быть открыт, прежде чем его можно записать в Исключение.
@Bean
public FlatFileItemWriter<MyResponse> flatWriter() {
FlatFileItemWriter<MyResponse> writer = new FlatFileItemWriter<>();
writer.setResource(new FileSystemResource("writer_queue_remote.csv"));
writer.setAppendAllowed(true);
writer.setHeaderCallback(new FlatFileHeaderCallback() {
@Override
public void writeHeader(Writer writer) throws IOException {
List<String> headersList = Arrays.asList("id","name");
String headers = headersList.stream().collect(Collectors.joining(","));
writer.write(headers);
}
});
writer.setLineAggregator(new DelimitedLineAggregator<MyResponse>() {
{
setDelimiter(",");
setFieldExtractor(new MyFieldExtractor());
}
});
return writer;
}
// Worker Integrationflow
@Bean
public IntegrationFlow chunkIntegrationFlow() {
// TODO Auto generated method stub
return this.remoteChunkingWorkerBuilder.itemProcessor(chunkProcessor()).itemWriter(flatWriter())
.inputChannel(requestChannel()).outputChannel(repliesChannel()).build();
}
Я записываю объект "MyResponse" в файл.
Пожалуйста, помогите мне, указав пример реализации или направьте меня, чтобы исправить это исключение.(Причиной исключения является ItemWriter.OutputState не инициализирован)