Мой весенний пакетный ридер не собирает файлы без расширения для обработки, игнорирует их - PullRequest
0 голосов
/ 14 апреля 2020

Я использую FlatFileItemReader в пакетной среде Spring. Некоторые из моих файлов являются файлами .txt (testfile1.txt), но, как ни странно, некоторые файлы не имеют никакого расширения (testfile2). Мой весенний пакетный ридер не собирает файлы без расширения для обработки, а игнорирует их. Есть ли способ, с помощью которого программа чтения плоских файлов читает файлы без расширения?

Я использую многоресурсную программу чтения предметов следующим образом

@Bean
    @StepScope
    @Qualifier("monthlyReconciliationMultiResourceItemReader")
    public MultiResourceItemReader monthlyReconciliationMultiResourceItemReader() {
      FileSystemResourceLoader fileSystemResourceLoader=new FileSystemResourceLoader();
        ResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver(fileSystemResourceLoader);
        Resource[] resources = null;
        try {

            resources = patternResolver.getResources(FilePathModifier.resolveTenantFilePath(tenantRequestContext.getCurrentTenant(), (getMonthlyReconFilePath())));
            MultiResourceItemReader<Object> multiResourceItemReader = new MultiResourceItemReader<>();
            multiResourceItemReader.setResources(resources);
            multiResourceItemReader.setDelegate(monthlyReconciliationFlatFileItemReader());
            return multiResourceItemReader;
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

Есть ли способ, с помощью которого мое средство чтения элементов плоского файла читает файлы без расширения?

Все средства чтения файлов Spring Batch работают с интерфейсом org.springframework.core.io.Resource из Spring Framework. Их не интересует, имеет ли файл расширение или нет.

Перед настройкой MultiResourceItemReader и его делегата FlatFileItemReader необходимо выполнить модульное тестирование кода, который разрешает массив Resource[], и убедитесь, что он разрешает файлы без расширения.

1 голос
/ 15 апреля 2020

попытайтесь выяснить, что делает эта строка -

  resources = patternResolver.getResources(FilePathModifier.resolveTenantFilePath(tenantRequestContext.getCurrentTenant(), (getMonthlyReconFilePath())));

см. Здесь ->

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/support/ResourcePatternResolver.html

Там написано - ->

Resource[]  getResources(String locationPattern)
Resolve the given location pattern into Resource objects.

Вы должны указать здесь шаблон ->

patternResolver.getResources(filePath with pattern);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...