目录
现象:
java.lang.NullPointerException: null
at cn.hutool.core.lang.SimpleCache.get(SimpleCache.java:99)
at cn.hutool.extra.ssh.JschSessionPool.getSession(JschSessionPool.java:45)
at cn.hutool.extra.ssh.JschUtil.getSession(JschUtil.java:55)
at cn.hutool.extra.ssh.Sftp.init(Sftp.java:127)
at cn.hutool.extra.ssh.Sftp.init(Sftp.java:146)
at cn.hutool.extra.ssh.Sftp.<init>(Sftp.java:81)
at cn.hutool.extra.ssh.Sftp.<init>(Sftp.java:70)
at cn.hutool.extra.ssh.Sftp.<init>(Sftp.java:56)
at cn.****.admin.util.FtpUpdateUtil.uploadFile(FtpUpdateUtil.java:54)
原java代码
Sftp sftp= JschUtil.createSftp("172.0.0.1", 22, "root", "123456");
//进入远程目录
sftp.cd("/opt/upload");
//上传本地文件
sftp.put("e:/test.jpg", "/opt/upload");
//下载远程文件
sftp.get("/opt/upload/test.jpg", "e:/test2.jpg");
//关闭连接
sftp.close();
pom配置(坑就在此)
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.1</version>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.54</version>
</dependency>
###解决方案
这个问题完全就是hutool与jsch版本不兼容导致,只需要修改版本即可完美解决(如下)
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.20</version>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>