首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.JSchException:数据包损坏

.JSchException:数据包损坏
EN

Stack Overflow用户
提问于 2015-01-08 11:02:14
回答 1查看 10.2K关注 0票数 5

我在RHEl 6上与Jdk 1.7_51一起使用Jsch 0.1.51。在对远程机器进行会话时,我得到了异常,即:

代码语言:javascript
运行
复制
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中运行得很好,有谁能给出一些建议吗?谢谢

使用的代码是:

代码语言:javascript
运行
复制
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()上出错;

EN

回答 1

Stack Overflow用户

发布于 2015-06-15 21:24:33

如果试图在已经存在的会话上连接,则可能发生此异常。周围的工作是结束会话,然后开始新的会话。这对我有帮助。从这个网站上找到了一些帮助:

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

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

  • 当会话在循环中重复使用时会发生此异常,在循环中会话被有意断开或由于超时而需要重新连接。
  • 引发此异常的原因是会话第一次连接到远程站点时,会为会话生成一个名为数据包的随机数。
  • 当线程有一个小时的睡眠时,会话会由于在一段时间内没有活动而自动断开连接。
  • 当会话断开时,数据包将丢失。
  • 当会话试图重新连接时,它找不到数据包,因此抛出异常。
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27838523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档