Интеграция Spring SFTP Случайная ошибка IOException: труба закрыта - PullRequest
0 голосов
/ 20 июня 2020

Привет, я интегрирую SFTP (версия 5.1.6) в свое приложение весенней загрузки. Ниже представлена ​​конфигурация, которую я использую. Но иногда я получаю исключение ниже и не могу передать, не уверен, в чем проблема, как я могу убедиться, что исключения не возникло.

Не удалось записать в 'TestFile. xml .writing 'при загрузке файла; вложенное исключение - org.springframework.core.NestedIOException: не удалось записать файл; вложенное исключение - 4: java .io.IOException: труба закрыта

@Bean
public SessionFactory<ChannelSftp.LsEntry> sftpSessionFactory() {
    LOGGER.debug(" Creating SFTP Session Factory -Start");
    DefaultSftpSessionFactory factory = new DefaultSftpSessionFactory(true);
    factory.setHost(sftpHost);
    factory.setPort(sftpPort);
    factory.setUser(sftpUser);
    factory.setPassword(sftpPasword);
    factory.setAllowUnknownKeys(true);
    LOGGER.debug(" Creating SFTP Session Factory -End");
    return new CachingSessionFactory<>(factory);
}

 @Bean
@ServiceActivator(inputChannel = "toSftpChannel")
public MessageHandler handler() {
    SftpMessageHandler handler = new SftpMessageHandler(sftpSessionFactory());
    LOGGER.debug(" Creating SFTP MessageHandler - Start ");

    handler.setRemoteDirectoryExpression(new LiteralExpression(sftpRemoteDirectory));
    handler.setFileNameGenerator(new FileNameGenerator() {
        @Override
        public String generateFileName(Message<?> message) {
            if (message.getPayload() instanceof File) {

                return ((File) message.getPayload()).getName();
            } else {
                throw new IllegalArgumentException("Expected Input is File.");
            }
        }
    });
    LOGGER.debug(" Creating SFTP MessageHandler - End ");
    return handler;
}

@MessagingGateway
public interface UploadGateway {
    @Gateway(requestChannel = "toSftpChannel")
    void sendToSftp(File file);
    }

1 Ответ

1 голос
/ 22 июня 2020

Труба закрыта

Просто означает, что произошел сбой в сети или сервер закрыл соединение по какой-то причине; вам нужно будет просмотреть журналы сервера для получения дополнительной информации.

Вы можете добавить рекомендацию о повторении к исходящему адаптеру для повторных попыток сбоя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...