I am working on a chat app using xmpp,As per our requirement we have three server Apache Tomcat 7,ejabbered 2.1.11 and mysql 5.5,
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
Using above library I am able to Connect with ejabberd and able to login with my login id and password but after some time of logging in connection gets close automatically and a am getting below stack trace
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)
and above messages keeps repeating in loop in my eclipse console!!!
can anyone explain me
- What is the reason for the above error?
- How can I solve above error?
Thanks in advance!!!
Then connection went down unexpectedly. For example because the server closed it in an unclean way.
There can be many causes for this. You should handle the exception and re-establish the connection.
You need to set a heartbeat(ping) interval to overcome timeouts over idle connections. Timeouts need not necessarily be in the applications, they can be in the routers/switches in the path.in the example, 600 represents 10 minutes.
PingManager.getInstanceFor(connection).setPingInterval(600);