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'以延迟加载的方式工作,所以在启动时确实没有任何钩子来跟踪错误的连接选项。所以,你绝对应该提供自制机制,以便在需要确认时进行验证。那么,你的方法是很好的候选人。 –