2012-02-07 3 views
2

を接続しますスマックのAPI、私は私の会社XMPPServerに接続し、次の例外を取得しようとしている()例外

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に直接ここで見つけることができます:

http://svn.igniterealtime.org/svn/repos/spark/trunk/src/java/org/jivesoftware/spark/util/DummySSLSocketFactory.java

+0

問題の解決策を見つけた場合は、問題の更新ではなく回答として投稿してください。 – Flow

+0

私は8時間も経たないうちに自分の問題の解決策を見つけたので、すぐに答えを投稿することはできませんでした。 – julia

答えて

2

私は問題を発見しました。 SSL接続の場合
は、次のコードが必要とされている:あなたはまた、スパークで見つけることができDummySSL classを、使用することができます

config.setSecurityMode(ConnectionConfiguration.SecurityMode.enabled); 
config.setSocketFactory(new DummySSLSocketFactory()); 

関連する問題