Java 提供要写入的所有字节的Spring批处理未成功写入错误

Java 提供要写入的所有字节的Spring批处理未成功写入错误,java,spring,spring-batch,batch-processing,Java,Spring,Spring Batch,Batch Processing,我编写了一个spring批处理作业,它使用flatFileItemWriter将大量数据写入文件。作业间歇性失败,出现以下错误org.springframework.batch.support.transaction.FlushFailedException:无法写入输出缓冲区。 我查看了源代码,发现它在以下方面特别失败: ,这意味着写入的字节数不等于读取的字节数。这里有人知道为什么这一步失败了吗。谢谢 以下是错误的完整堆栈跟踪: Encountered an error executing s

我编写了一个spring批处理作业,它使用flatFileItemWriter将大量数据写入文件。作业间歇性失败,出现以下错误
org.springframework.batch.support.transaction.FlushFailedException:无法写入输出缓冲区
。 我查看了源代码,发现它在以下方面特别失败: ,这意味着写入的字节数不等于读取的字节数。这里有人知道为什么这一步失败了吗。谢谢

以下是错误的完整堆栈跟踪:

Encountered an error executing step step in job exportDataJob; org.springframework.batch.support.transaction.FlushFailedException: Could not write to output buffer 
   at org.springframework.batch.support.transaction.TransactionAwareBufferedWriter$1.beforeCommit(TransactionAwareBufferedWriter.java:111)
   at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:95)
   at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:932)
   at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:744)
   at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)
   at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:150) 
   at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:271) 
   at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:81) 
   at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:374) 
   at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215) 
   at org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:144) 
   at org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:257) 
   at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:200) 
   at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:148) 
   at org.springframework.batch.core.job.AbstractJob.handleStep(AbstractJob.java:392) 
   at org.springframework.batch.core.job.SimpleJob.doExecute(SimpleJob.java:135) 
   at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:306) 
   at org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:135) 
   at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:50) 
   at org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:128) 
   at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.execute(JobLauncherCommandLineRunner.java:214) 
   at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.executeLocalJobs(JobLauncherCommandLineRunner.java:231) 
   at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.launchJobFromProperties(JobLauncherCommandLineRunner.java:123) 
   at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.run(JobLauncherCommandLineRunner.java:117) 
   at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:732) 
   at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:716) 
   at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:703) 
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:304) 
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) 
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) 
   at com.intuit.sbg.integrations.batch.Application.main(Application.java:48) 
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
   at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) 
   at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) 
   at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:587) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
   at java.lang.reflect.Method.invoke(Method.java:498) 
   at org.tanukisoftware.wrapper.WrapperJarApp.run(WrapperJarApp.java:394) 
   at java.lang.Thread.run(Thread.java:748) 
Caused by: java.io.IOException: All bytes to be written were not successfully written 
   at org.springframework.batch.support.transaction.TransactionAwareBufferedWriter$1.complete(TransactionAwareBufferedWriter.java:124) 
   at org.springframework.batch.support.transaction.TransactionAwareBufferedWriter$1.beforeCommit(TransactionAwareBufferedWriter.java:107) 
   ... 44 common frames omitted

由于磁盘已满,无法将字节写入文件时,通常会发生这种情况。您确定有足够的空间将数据写入输出文件吗?@MahmoudBenHassine谢谢!问题确实是没有足够的磁盘空间将数据写入输出文件。