2
我试图连接到我的公司XMPPServer并获得以下异常:啪API,connect()的异常
java.io.EOFException: input contained no data
at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3003)
at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
at org.xmlpull.mxp1.MXParser.parseProlog(MXParser.java:1410)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1395)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:325)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:43)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:70)
我的代码是非常基本的...
System.setProperty("smack.debugEnabled", "true");
XMPPConnection.DEBUG_ENABLED = true;
ConnectionConfiguration config = new ConnectionConfiguration("xxx", 5223);
config.setSecurityMode(SecurityMode.enabled);
config.setSASLAuthenticationEnabled(true);
config.setDebuggerEnabled(true);
config.setCompressionEnabled(false);
XMPPConnection connection = new XMPPConnection(config);
connection.connect();
上午什么我做错了?
“原始发送的数据包”,从啪调试窗口似乎显示正确的XML流量:
<stream:stream to="xxx" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">
<presence id="3347O-0" type="unavailable"></presence>
</stream:stream>
---- ---- UPDATE
我发现这个问题。
对于SSL连接需要以下代码:
config.setSecurityMode(ConnectionConfiguration.SecurityMode.enabled);
config.setSocketFactory(new DummySSLSocketFactory());
的DummySSLSocketFactory类可以在Spark或直接在这里找到:
如果您发现问题的解决方案,请将其作为答案发布,而不是更新您的问题。 – Flow 2012-02-08 10:49:48
这是因为我在不到8个小时的时间内找到了解决问题的方案......它不允许我马上发布答案。 – julia 2012-02-09 01:01:53