2011-07-12 56 views
2

我試圖編寫一個簡單的例子,使用最新版本的Smack(3.2.1)在兩個賬戶之間發送和接收消息。Java和Jabber/Smack

Connection connection = new XMPPConnection("jabber.org"); 
connection.connect(); 
connection.login("username", "password"); 

但我甚至不能通過登錄部分。當我運行上面的代碼,我得到這個例外:

Exception in thread "main" SASL authentication DIGEST-MD5 failed: invalid-authzid: 
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:337) 
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:203) 
at org.jivesoftware.smack.Connection.login(Connection.java:348) 
at com.smack.TestSmack.main(TestSmack.java:19) 

這是怎麼回事?我相信我的用戶名和密碼可以工作,因爲我可以使用我的IM客戶端登錄。

任何人都可以指向我當前正在工作的Smack示例嗎?這非常令人沮喪,因爲文檔和庫看起來不同步。

Thanks-

+2

您應該刪除這個問題,因爲我只是下跌1分鐘,因爲我需要在評論中發現您錯誤輸入了密碼。 :-) – Akku

+4

這個問題似乎是脫離主題,因爲它是關於misstyped密碼。 – madth3

回答

6

你能確認你是不是加入「@ jabber.org」的用戶名結束了嗎?如果你這樣做,它不會工作。

否則,如果你這樣做已經,您可能希望使用

SASLAuthentication.supportSASLMechanism("PLAIN", 0);

嘗試之前

connection.login("username", "password");

+0

不,我在用戶名末尾沒有@ jabber.org。我嘗試添加了SASLAuthentication行,我得到這個錯誤: – Jim

+0

異常線程「main」 SASL認證平原失敗:無效-authzid: \t在org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:337) \t在org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:203) \t在org.jivesoftware.smack.Connection.login(Connection.java:348) \t在com.smack.TestSmack.main(TestSmack.java :20) – Jim

+0

儘管謝謝你的建議。任何其他想法? – Jim