Spring пакетная обработка нескольких файлов ввода в переменных среды [closed]

Мне нужна серьезная помощь, пожалуйста, я застрял на 3 дня в той же проблеме, мне нужно написать пакетную программу Spring, которая читает несколько файлов csv и копирует их содержимое в выходной файл. Моя пакетная конфигурация синтаксически верна, и я запускаю приложение без ошибок, но не вижу элементов, отображаемых в консоли !! чувствую, что файлы там даже не красные! У меня есть два писателя: один для записи в консоли, а другой для записи в файл dest, но ни один из них не проснулся !! Не думаю, что файлы даже красные! вот мой класс batchConfig:

@Component

@Configuration

@EnableBatchProcessing

public class batchConfig {

 

                   @Autowired

                    private JobBuilderFactory jobBuilderFactory;

                    

                    @Autowired

                    private StepBuilderFactory stepBuilderFactory;

               

                //    @Value(value="Fichiers-eclates/fichier-eclate-*.csv")

                //    private Resource[] inputResources;

                  //  @Value("#{jobParameters['FichierEclate']}") Resource[] inputFile;

                   @Value("file:/Fichiers-eclates/*.csv") Resource[] inputFile;

 

                //   @Value("#{jobParameters['FichierRegrouppe']}") Resource  outputFile;

                   

                    

                    @Bean

                    public ConsoleItemWriter<FichierEclate> writerConsole()

                    {

                        return new ConsoleItemWriter<FichierEclate>();

                    }

                 

                   

                    public FlatFileItemWriter<FichierEclate> writer() 

                    {

                      

                        FlatFileItemWriter<FichierEclate> writer = new FlatFileItemWriter<>();

                        

                      

                       writer.setResource(new ClassPathResource("Fichiers-regrouppes/outputData.csv"));

                         

                     

                        writer.setAppendAllowed(true);

                  

                       

                        writer.setLineAggregator(new DelimitedLineAggregator<FichierEclate>() {

                            {

                                setDelimiter(",");

                                setFieldExtractor(new BeanWrapperFieldExtractor<FichierEclate>() {

                                    {

                                        setNames(new String[] { "AffaireID","CodeClasse","CodeAppli","NBcompte","NBlot" });

                                    }

                                });

                            }

                        });

                        return writer;

                    }

               

                    @Bean

                    public Job readCSVFilesJob() {

                        return jobBuilderFactory

                                .get("readCSVFilesJob")

                                .incrementer(new RunIdIncrementer())

                                .start(step1())

                                .build();

                    }

               

                    @Bean

                    public Step step1()  {

                        return stepBuilderFactory.get("step1").<FichierEclate, FichierEclate>chunk(100)

                                .reader(multiResourceItemReader())

                                .writer(writerConsole())

                                .build();

                    }

                    @Primary

                    @Bean

                    public MultiResourceItemReader<FichierEclate> multiResourceItemReader()

                    {

                        MultiResourceItemReader<FichierEclate> resourceItemReader = new MultiResourceItemReader<FichierEclate>();

                        resourceItemReader.setResources(inputFile);

                        resourceItemReader.setDelegate(reader());

                        return resourceItemReader;

                    }

                   

                   @SuppressWarnings({ "rawtypes", "unchecked" })

                    @Bean

                    public FlatFileItemReader<FichierEclate> reader()

                    {

                      

                        FlatFileItemReader<FichierEclate> reader = new FlatFileItemReader<FichierEclate>();

                       

                      
                        reader.setLinesToSkip(1);  

                         

                       

                        reader.setLineMapper(new DefaultLineMapper() {

                            {

                              

                                setLineTokenizer(new DelimitedLineTokenizer() {

                                    {

                                        setNames(new String[] { "AffaireID","CodeClasse","CodeAppli","NBcompte","NBlot" });

                                    }

                                });

                               

                                setFieldSetMapper(new BeanWrapperFieldSetMapper<FichierEclate>() {

                                    {

                                       setTargetType(FichierEclate.class);

                                    }

                                });

                            }

                        });

                        return reader;

                    }

 @Bean
 public JobParametersValidator defaultJobParametersValidator() {
 DefaultJobParametersValidator bean = new DefaultJobParametersValidator();

                                               bean.setRequiredKeys(new String[] { "FichierEclate" });

                                               bean.setOptionalKeys(new String[] { "run.id" });

                                               return bean;

                               }

 

                               @Bean

                               public JobParametersValidator myJobParametersValidator() {

                                               return new MyJobParametersValidator();

                               }

}

вот еще один класс для consoleWriter:

import java.util.List;

 

import org.springframework.batch.item.ItemWriter;

 

public class ConsoleItemWriter<T> implements ItemWriter<T> {

    @Override

    public void write(List<? extends T> items) throws Exception {

        for (T item : items) {

            System.out.println(item);

        }

    }

}

Теперь мои вопросы:

1 / папка, содержащая несколько файлов, которые должны быть красными, находится снаружи, поэтому я хочу передать путь к папке в качестве переменной среды в «Выполнить конфигурации» в Eclipse. Мне это понадобится в производстве позже. Затем я вызываю эту переменную среды в flatefileItemReader или MultiresourceReader, не уверен, мне нужно, чтобы вы сказали мне, какой из них и как, пожалуйста?

2 / выходной файл, который будет содержать содержимое всех входных файлов, должен быть автоматически создан в определенной папке. этот путь к папке также следует передать как переменную среды и вызвать позже в FlatFileitemWriter.

3 / Почему я не вижу элементов, отображаемых в консоли, хотя у меня нет ошибок? если из-за того, что файлы не красные, скажите, как решить вопрос “1”.

Как я могу решить эту проблему? !!

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *