我正在尝试使用 java 中的 5 个线程将文件连续上传到 SFTP 服务器,在启动程序时正确上传文件但过了一段时间,
所有线程在尝试创建新会话时都会抛出 UnknownHostException 异常持续 5 到 10 分钟,经过一段时间程序正常工作后,我无法找到导致此异常的原因,
这是用于连接sftp的代码,
JSch jsch = new JSch();
jsch.setKnownHosts(host_file);
session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
session.setPassword(SFTPPASS);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
Run Code Online (Sandbox Code Playgroud)
例外 :
at td.bdops.clupload.CARUpload.uploadZip(CARUpload.java:398)
at td.bdops.clupload.CARUpload.uploadZip(CARUpload.java:398)
Caused by: java.net.UnknownHostException: sftp.opsbank2-prod.tio.systems
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at com.jcraft.jsch.Util.createSocket(Util.java:343)
at com.jcraft.jsch.Session.connect(Session.java:215)
at com.jcraft.jsch.Session.connect(Session.java:183)
at td.bdops.util.FTPUtility.uploadAWSFTP(FTPUtility.java:227)
at td.bdops.util.FTPUtility.uploadAWSFTP(FTPUtility.java:247)
Run Code Online (Sandbox Code Playgroud)
谁能解释一下,这个错误的根本原因是什么