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會話,而不是寫愚蠢的方法?
感謝
絕對正確。感謝您提供此功能。但是,如果遠程主機關閉,或者我們在創建CachingSessionFactory時傳遞錯誤的遠程主機,應用程序不會在日誌中報告任何錯誤,並且我們無法跟蹤應用程序是否正常工作。有沒有辦法在日誌中發現通知或錯誤,以防ftpSession出現問題?請指教。 – Sushil
那麼,因爲'CachingSessionFactory'以延遲加載的方式工作,所以在啓動時確實沒有任何鉤子來跟蹤錯誤的連接選項。所以,你絕對應該提供自制機制,以便在需要確認時進行驗證。那麼,你的方法是很好的候選人。 –