首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java.io.EOFException:没有更多可用的数据--期望结束标记</stream:<stream:stream> >关闭开始标记<stream:stream>

java.io.EOFException:没有更多可用的数据--期望结束标记</stream:<stream:stream> >关闭开始标记<stream:stream>
EN

Stack Overflow用户
提问于 2014-09-17 04:58:21
回答 2查看 5.2K关注 0票数 5

我正在使用xmpp开发一个聊天应用程序,根据我们的要求,我们有三台服务器Apache 7、ejabbered 2.1.11和mysql 5.5。

代码语言:javascript
运行
复制
to run xmppbot on tomcat  used below library
    -Smack-core-4.0.3.jar
    -smack-tcp-4.0.3.jar
    -xlightweb2.5.jar
    -xpp3-1.1.3.3.jar
    -xSocket-2.4.6.jar

使用上述库,我能够与ejabberd连接,并能够使用登录id和密码登录,但经过一段时间的连接登录后,将自动关闭并在堆栈跟踪下面运行

代码语言:javascript
运行
复制
Sep 16, 2014 4:36:01 PM org.jivesoftware.smack.XMPPConnection callConnectionClosedOnErrorListener
WARNING: Connection closed with error
java.io.EOFException: no more data available - expected end tag </stream:stream> to close start tag <stream:stream> from line 1, parser stopped on END_TAG seen ...</text></error></iq>... @1:1347
    at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:2919)
    at org.xmlpull.mxp1.MXParser.more(MXParser.java:2928)
    at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1112)
    at org.xmlpull.mxp1.MXParser.next(MXParser.java:1061)
    at org.jivesoftware.smack.tcp.PacketReader.parsePackets(PacketReader.java:279)
    at org.jivesoftware.smack.tcp.PacketReader.access$000(PacketReader.java:47)
    at org.jivesoftware.smack.tcp.PacketReader$1.run(PacketReader.java:81)
Sep 16, 2014 4:37:15 PM org.jivesoftware.smack.XMPPConnection callConnectionClosedOnErrorListener
WARNING: Connection closed with error
java.io.EOFException: no more data available - expected end tag </stream:stream> to close start tag <stream:stream> from line 1, parser stopped on END_TAG seen ...</text></error></iq>... @1:1347
    at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:2919)
    at org.xmlpull.mxp1.MXParser.more(MXParser.java:2928)
    at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1112)
    at org.xmlpull.mxp1.MXParser.next(MXParser.java:1061)
    at org.jivesoftware.smack.tcp.PacketReader.parsePackets(PacketReader.java:279)
    at org.jivesoftware.smack.tcp.PacketReader.access$000(PacketReader.java:47)
    at org.jivesoftware.smack.tcp.PacketReader$1.run(PacketReader.java:81)

上面的消息在我的eclipse控制台中不断重复!

有人能解释一下吗

  1. 造成上述错误的原因是什么?
  2. 如何解决上述错误?

提前谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-17 07:10:27

  1. 造成上述错误的原因是什么?

后来,连接意外地中断了。例如,因为服务器以不干净的方式关闭了它。

  1. 如何解决上述错误?

造成这种情况的原因可能很多。您应该处理异常并重新建立连接。

票数 0
EN

Stack Overflow用户

发布于 2016-02-09 19:11:13

您需要设置心跳(Ping)间隔,以克服空闲连接上的超时。超时不一定在应用程序中,它们可以出现在path.in中的路由器/交换机中--示例中,600表示10分钟。

PingManager.getInstanceFor(connection).setPingInterval(600);

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25882594

复制
相关文章

相似问题

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