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]
1
A
回答
1
您的堆棧跟蹤實際的錯誤是: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文件),則會拋出異常。
所以你在這裏要做的是檢查你的bean配置,並檢查文件系統中是否存在實際文件。
0
檢查了讀者的範圍是否已被定義爲「臺階」,e.g
<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>
這意味着該屬性將在運行時,而不是在初始化得到解決。我希望這可以幫助你和任何可能需要它的人。
相關問題
- 1. 如何使用MultiResourceItemReader的getResource
- 2. 使用註釋
- 3. 使用註釋註釋Python print()輸出
- 4. 如何在註釋中使用註釋?
- 5. 使用org.hibernate.MappingException註釋
- 6. 使用Java註釋
- 7. 在使用註釋
- 8. 使用PersistentContext註釋
- 9. 使用註釋django
- 10. 使用@MapKey註釋
- 11. 使用Hibernate註釋
- 12. 使用@Value註釋
- 13. 使用註釋器js在mysql數據庫中存儲註釋(註釋)
- 14. 註釋後可以使用註釋來調用方法嗎?
- 15. 無法使用註釋
- 16. UIDocumentInteractionController註釋屬性使用
- 17. 使用iText7展開註釋
- 18. 如何使用註釋
- 19. 如何使用@produces註釋?
- 20. Maven的 - 使用註釋
- 21. 正確使用@SessionAttribute註釋
- 22. 使用自定義註釋
- 23. 註釋文本使用GGPLOT2
- 24. 使用JAVA的PDF註釋
- 25. Django使用select_related註釋
- 26. 如何使用ClearCase註釋
- 27. 使用RDFa註釋網頁
- 28. 使用@Transactional註釋問題
- 29. 使用biomaRt註釋位置
- 30. 使用註釋處理器
請提供更多信息,目前尚不清楚你在問什麼。 –
我們有結果集,其中有100條記錄。現在我們已經創建了一個parrelel批處理應用程序來處理它,其中我們給出了4的網格大小。現在將創建4個文件,其中我們每個文件都有25個記錄。當我們試圖將這4個文件合併到一個文件中時,它會拋出一個異常,它使用xml工作,但是使用annotation拋出一個異常。多少資源在第一次加載時被設置,但是在第一步之後創建了4個文件但是因爲它最初被加載,所以那個目錄中沒有文件導致問題。 –
它拋出一個異常java.lang.IllegalStateException:沒有資源可讀。如果這不是錯誤條件,則設置strict = false。 –