如何在Spring中检查SFTP连接是否成功(使用try catch)?我应该使用哪个库来检查Spring中的SFTP连接?

n9vozmp4  于 2023-04-28  发布在  Spring
关注(0)|答案(2)|浏览(151)

我需要检查SFTP连接的运行状况。如何在Sping Boot 中检查SFTP连接是否成功(使用try-catch)?我应该使用哪个库来检查Spring中的SFTP连接?

5ktev3wc

5ktev3wc1#

请检查this link。希望你能得到答案。虽然我复制了一些代码片段以供您的帮助。

.....
jsch = new JSch();
session = jsch.getSession(user, hostIP, port);
session.setPassword(Password);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect(getTimeInSecond() * 1000);
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp) channel;
channelSftp.cd(LocationPath);
...

谢谢

pwuypxnk

pwuypxnk2#

添加自定义SFTP运行状况指示器:

import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.integration.file.remote.session.Session;
import org.springframework.integration.sftp.session.SftpSession;

public class SftpHealthIndicator implements HealthIndicator {

    private final Session sftpSession;

    public SftpHealthIndicator(Session sftpSession) {
        this.sftpSession = sftpSession;
    }

    @Override
    public Health health() {
        try {
            if (sftpSession.isOpen()) {
                return Health.up().build();
            } else {
                return Health.down().build();
            }
        } catch (Exception e) {
            return Health.down().withDetail("Error", ex.getMessage()).build();
        }
    }
}

相关问题