2016-12-28 17 views
1

Я использую следующий код для создания ftpSessionfactory -Весенняя интеграция с FTP: как проверить сеанс FTP?

@Bean 
@Lazy(false) 
public SessionFactory<FTPFile> ftpSessionFactory() { 
    DefaultFtpSessionFactory sf = new DefaultFtpSessionFactory(); 
    sf.setHost(server); 
    sf.setPort(port); 
    sf.setUsername(username); 
    sf.setPassword(password); 
    return new CachingSessionFactory<FTPFile>(sf); 
} 

и следующим способом, чтобы проверить, если FTP-сеанса хорошо -

private boolean isFTPSessionOK() { 
    try { 
     SessionFactory<FTPFile> ftpSessionFactory = ftpSessionFactory(); 
     boolean open = ftpSessionFactory.getSession().isOpen(); 
     System.out.println("Session is good ? "+ open); 
     return open; 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return false; 
} 

Есть ли другой способ, чтобы проверить сеанс FTP вместо написания тупой метод?

Благодаря

ответ

1

Ну да, вам не нужен этот метод, если вы используете CachingSessionFactory уже.

Каждый раз, когда выполняет ftpSessionFactory.getSession(), абстракция обеспечивает возврат к действию открытого экземпляра.

+0

Абсолютно верно. Спасибо за предоставление этой функции. Однако, если удаленный хост выключен ИЛИ мы передаем неправильный удаленный хост при создании CachingSessionFactory, приложение не сообщает о какой-либо ошибке в журналах, и мы не можем отслеживать, работает ли приложение нормально или нет. Есть ли способ получить уведомление или ошибку в журналах в случае возникновения каких-либо проблем с ftpSession? Пожалуйста, порекомендуйте. – Sushil

+1

Ну, так как 'CachingSessionFactory' работает в режиме ленивой загрузки, на самом деле нет никаких крючков для отслеживания неправильных параметров подключения при запуске. Таким образом, вы определенно должны предоставить механизм, приготовленный на дому, для проверки, когда вам нужно быть уверенным. Итак, ваш метод - хороший кандидат. –