Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 春季批量发行:";“将远程目录同步到本地目录时出现问题”;_Java_Spring_Spring Integration_Spring Batch_Spring Integration Sftp - Fatal编程技术网

Java 春季批量发行:";“将远程目录同步到本地目录时出现问题”;

Java 春季批量发行:";“将远程目录同步到本地目录时出现问题”;,java,spring,spring-integration,spring-batch,spring-integration-sftp,Java,Spring,Spring Integration,Spring Batch,Spring Integration Sftp,我们将文件放在某个SFTP服务器上,然后运行SpringBatch。当SpringBatch运行时,执行以下步骤 从FTP位置拾取文件 处理该文件 删除文件 当spring批处理执行上述步骤时,我们面临以下异常 ERROR org.springframework.integration.handler.LoggingHandler: 140 - org.springframework.integration.MessagingException: Problem occurred while s

我们将文件放在某个SFTP服务器上,然后运行SpringBatch。当SpringBatch运行时,执行以下步骤

  • 从FTP位置拾取文件

  • 处理该文件

  • 删除文件

  • 当spring批处理执行上述步骤时,我们面临以下异常

    ERROR org.springframework.integration.handler.LoggingHandler: 140 - org.springframework.integration.MessagingException: Problem occurred while synchronizing remote to local directory
                at org.springframework.integration.file.remote.synchronizer.AbstractInboundFileSynchronizer.synchronizeToLocalDirectory(AbstractInboundFileSynchronizer.java:189)
                at org.springframework.integration.file.remote.synchronizer.AbstractInboundFileSynchronizingMessageSource.receive(AbstractInboundFileSynchronizingMessageSource.java:162)
                at org.springframework.integration.endpoint.SourcePollingChannelAdapter.receiveMessage(SourcePollingChannelAdapter.java:111)
                at org.springframework.integration.endpoint.AbstractPollingEndpoint.doPoll(AbstractPollingEndpoint.java:184)
                at org.springframework.integration.endpoint.AbstractPollingEndpoint.access$000(AbstractPollingEndpoint.java:51)
                at org.springframework.integration.endpoint.AbstractPollingEndpoint$1.call(AbstractPollingEndpoint.java:143)
                at org.springframework.integration.endpoint.AbstractPollingEndpoint$1.call(AbstractPollingEndpoint.java:141)
                at org.springframework.integration.endpoint.AbstractPollingEndpoint$Poller$1.run(AbstractPollingEndpoint.java:273)
                at org.springframework.integration.util.ErrorHandlingTaskExecutor$1.run(ErrorHandlingTaskExecutor.java:52)
                at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:48)
                at org.springframework.integration.util.ErrorHandlingTaskExecutor.execute(ErrorHandlingTaskExecutor.java:49)
                at org.springframework.integration.endpoint.AbstractPollingEndpoint$Poller.run(AbstractPollingEndpoint.java:268)
                at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53)
                at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
                at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
                at java.util.concurrent.FutureTask.run(FutureTask.java:138)
                at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
                at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
                at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
                at java.lang.Thread.run(Thread.java:662)
            Caused by: org.springframework.integration.MessagingException: Failed to execute on session
                at org.springframework.integration.file.remote.RemoteFileTemplate.execute(RemoteFileTemplate.java:306)
                at org.springframework.integration.file.remote.synchronizer.AbstractInboundFileSynchronizer.synchronizeToLocalDirectory(AbstractInboundFileSynchronizer.java:163)
                ... 21 more
            Caused by: org.springframework.core.NestedIOException: Failed to remove file: 2: Specified file path is invalid.
                at org.springframework.integration.sftp.session.SftpSession.remove(SftpSession.java:83)
                at org.springframework.integration.file.remote.synchronizer.AbstractInboundFileSynchronizer.copyFileToLocalDirectory(AbstractInboundFileSynchronizer.java:230)
                at org.springframework.integration.file.remote.synchronizer.AbstractInboundFileSynchronizer.access$100(AbstractInboundFileSynchronizer.java:59)
                at org.springframework.integration.file.remote.synchronizer.AbstractInboundFileSynchronizer$1.doInSession(AbstractInboundFileSynchronizer.java:172)
                at org.springframework.integration.file.remote.synchronizer.AbstractInboundFileSynchronizer$1.doInSession(AbstractInboundFileSynchronizer.java:163)
                at org.springframework.integration.file.remote.RemoteFileTemplate.execute(RemoteFileTemplate.java:297)
                ... 22 more
    

    可能是安全问题-可能您没有删除权限

    获取和删除时使用完全相同的路径(如果配置为在检索后删除远程文件)。显然,提取工作正常,因为我们现在处于删除阶段


    您应该查阅服务器日志。

    谢谢您的回答。但我们不确定这些异常是否是在spring batch执行删除操作时发生的。因此,您是否有任何其他建议来检查它。堆栈跟踪清楚地显示,spring integration在删除远程服务器上的文件后遇到了困难下载它。此时不涉及Spring批处理。