2015-11-24 4 views
1
2015-11-24 15:56:32,512 [main] ERROR org.springframework.batch.core.step.AbstractStep:229[execute] - Encountered an error executing step multiThreadedStep in job extractJob 
java.lang.IllegalStateException: No resources to read. Set strict=false if this is not an error condition. 
    at org.springframework.batch.item.file.MultiResourceItemReader.open(MultiResourceItemReader.java:173) ~[spring-batch-infrastructure-3.0.5.RELEASE.jar:3.0.5.RELEASE] 
    at org.springframework.batch.item.support.CompositeItemStream.open(CompositeItemStream.java:96) ~[spring-batch-infrastructure-3.0.5.RELEASE.jar:3.0.5.RELEASE] 
    at org.springframework.batch.core.step.tasklet.TaskletStep.open(TaskletStep.java:310) ~[spring-batch-core-3.0.5.RELEASE.jar:3.0.5.RELEASE] 
    at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:197) ~[spring-batch-core-3.0.5.RELEASE.jar:3.0.5.RELEASE] 
    at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:148) [spring-batch-core-3.0.5.RELEASE.jar:3.0.5.RELEASE] 
    at org.springframework.batch.core.job.AbstractJob.handleStep(AbstractJob.java:392) [spring-batch-core-3.0.5.RELEASE.jar:3.0.5.RELEASE] 
    at org.springframework.batch.core.job.SimpleJob.doExecute(SimpleJob.java:135) [spring-batch-core-3.0.5.RELEASE.jar:3.0.5.RELEASE] 
    at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:306) [spring-batch-core-3.0.5.RELEASE.jar:3.0.5.RELEASE] 
    at org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:135) [spring-batch-core-3.0.5.RELEASE.jar:3.0.5.RELEASE] 
    at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:50) [spring-core-4.1.6.RELEASE.jar:4.1.6.RELEASE] 
    at org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:128) [spring-batch-core-3.0.5.RELEASE.jar:3.0.5.RELEASE] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_60] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_60] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_60] 
    at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_60] 
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) [spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE] 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) [spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE] 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) [spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE] 
    at org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$PassthruAdvice.invoke(SimpleBatchConfiguration.java:127) [spring-batch-core-3.0.5.RELEASE.jar:3.0.5.RELEASE] 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE] 
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) [spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE] 
    at com.sun.proxy.$Proxy33.run(Unknown Source) [na:na] 
+0

Просьба предоставить более подробную информацию, неясно, о чем вы спрашиваете. –

+0

У нас есть результирующий набор, в котором у нас есть 100 записей. теперь мы создали пакетное приложение parrelel для обработки его, в котором мы задали размер сетки 4. теперь будет создан 4 файла, в котором мы имеем по 25 записей. Когда мы пытаемся объединить эти 4 файла в один файл, он бросает исключение и работает с использованием xml, но бросает исключение, используя аннотацию. Некоторые ресурсы устанавливаются, когда они загружаются с первого раза, но 4 файла создают после первого шага но так как он загружен изначально, то в этот каталог не было файла, который теперь вызывает проблему. и –

+0

он бросает исключение java.lang.IllegalStateException: нет ресурсов для чтения. Установите strict = false, если это не является условием ошибки. –

ответ

1

Фактическая ошибка вашего StackTrace является: java.lang.IllegalStateException: No resources to read.

Это означает, что ваше имущество читатель resource либо не установлен, либо выражение не соответствует ни одному файлу.

Вот пример конфигурации:

<bean id="multiResourceReader" class="org.springframework.batch.item.file.MultiResourceItemReader"> 
    <property name="resources" value="file:folder/*.csv" /> 
    <property name="delegate" ref="delegate" /> 
</bean> 

В этой конфигурации вы можете увидеть свойство resource было установлено на file:folder/*.csv. Это означает, что ваше исключение будет выбрано, если нет файлов, соответствующих этому выражению, то есть нет файлов CSV в папке.

Итак, что вам нужно сделать, это проверить конфигурацию компонента и проверить наличие фактических файлов в файловой системе.

0

Проверьте, есть ли сфера читателя был определен как «шаг», например

<bean id="multiResourceReader" 
    class=" org.springframework.batch.item.file.MultiResourceItemReader" scope="step"> 
    <property name="resources" value="file:C://files/*" /> 
    <property name="delegate" ref="flatFileItemReader" /> 
</bean> 

Это означает, что свойства будут решены во время выполнения, а не при инициализации. Надеюсь, это поможет вам и всем, кому это может понадобиться.

Смежные вопросы