gpt4 book ai didi

java - .JSchException : Packet corrupt 异常

转载 作者:太空狗 更新时间:2023-10-29 12:03:02 51 4
gpt4 key购买 nike

我在 RHEl 6 上使用 Jsch 0.1.51 和 Jdk 1.7_51。在与远程机器进行 session 时出现异常:

com.jcraft.jsch.JSchException: Packet corrupt
at com.jcraft.jsch.Session.start_discard(Session.java:1049)
at com.jcraft.jsch.Session.read(Session.java:919)
at com.jcraft.jsch.UserAuthNone.start(UserAuthNone.java:56)
at com.jcraft.jsch.Session.connect(Session.java:389)
at com.jcraft.jsch.Session.connect(Session.java:183)
at TestSFTP.checkException(TestSFTP.java:130)
at TestSFTP.moveFileToDir(TestSFTP.java:78)
at TestSFTP.main(TestSFTP.java:73)

相同的代码在 RHEL 5 上运行良好。任何人都可以提供一些建议..谢谢

使用的代码是:

Session   session     = null;
ChannelSftp channelSftp = null;
JSch jsch = new JSch();

session = jsch.getSession(this.sftpUser,this.sftpHost,this.sftpPort);

Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.setPassword(this.sftpPassword);
session.connect();
channelSftp = (ChannelSftp)session.openChannel("sftp");
channelSftp.connect();

我在 session.connect() 中遇到错误;

最佳答案

如果您尝试连接一个已经存在的 session ,就会发生此异常。解决方法是关闭 session ,然后开始新 session 。这对我有帮助。从此站点找到了一些帮助:

http://flyingjxswithjava.blogspot.com/2015/03/comjcraftjschjschexception-packet.html

引用网站的要点来理解问题:

  • 当 Session 在循环中被重复使用时会发生此异常,其中 Session 有意断开或由于超时而需要重新连接。

  • 之所以会抛出这样的异常,是因为Session第一次连接到远程站点时,会为该session生成一个名为Packet的随机数。

  • 当线程 hibernate 1 小时时,由于一段时间内没有 Activity , session 会自动断开连接。

  • 当 session 断开时,数据包丢失。

  • Session尝试重连时,找不到Packet,抛出异常。

关于java - .JSchException : Packet corrupt 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27838523/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com