0

私は大きな問題を抱えています。ジャバーサーバーに接続しようとすると、「SASL認証DIGEST-MD5が失敗しました」という通知が表示されます。JPasswordFieldを使用しない場合、このエラーは発生しませんが、IMでJTextFieldを使用しても意味がありません。私は見つけたすべての方法を試しましたが、それはすべて同じです。

コード:

private void bLoginAction(JTextField login, JPasswordField pass) {
loginText = login.getText();
passText = pass.getPassword().toString();
String[] data = loginText.split("@");
Connection.DEBUG_ENABLED = true;
ConnectionConfiguration config = new ConnectionConfiguration(data[1], 5222);
Connection con = new XMPPConnection(config);
 try {
 con.connect();
 } catch (XMPPException e) {
 e.printStackTrace();
 }
try {
 con.login(loginText, passText);
 } catch (XMPPException e) {
 e.printStackTrace();
 }  
}

printStackTrace()からの印刷:

SASL認証DIGEST-MD5が失敗しました:invalid-authzid:org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:337)at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:203)atorg.jivesoftware。 smack.Connection.login(Connection.java:348)

4

1 に答える 1

0

toString()を使用しないでください。こちらに示すように、代わりにgetPassword()を使用してみてください。JTextField を使用する場合でも、 toString( )の代わりにgetText()を使用する必要があります。

これは些細な問題ではなく、まっすぐな Java の問題です。

于 2012-07-11T14:36:38.440 に答える