基于asmack.jar的客户端的有时经常无法连接openfire搭建的服务器,报如下错误:
03-21 16:50:15.223: W/IInputConnectionWrapper(22102): showStatusIcon on inactive InputConnection
03-21 16:50:15.857: W/System.err(22102): java.lang.IllegalStateException: Not connected to server.
03-21 16:50:15.857: W/System.err(22102): at org.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:488)
03-21 16:50:15.858: W/System.err(22102): at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:69)
03-21 16:50:15.858: W/System.err(22102): at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:353)
03-21 16:50:15.858: W/System.err(22102): at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:230)
03-21 16:50:15.858: W/System.err(22102): at org.jivesoftware.smack.Connection.login(Connection.java:353)
03-21 16:50:15.858: W/System.err(22102): at com.seu3s.main.LogInActivity$2.run(LogInActivity.java:90)
03-21 16:50:15.858: W/System.err(22102): at java.lang.Thread.run(Thread.java:856)
03-21 16:50:15.858: W/System.err(22102): java.lang.IllegalStateException: Not connected to server.
03-21 16:50:15.859: W/System.err(22102): at org.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:488)
03-21 16:50:15.859: W/System.err(22102): at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:69)
03-21 16:50:15.859: W/System.err(22102): at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:363)
03-21 16:50:15.859: W/System.err(22102): at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:230)
03-21 16:50:15.859: W/System.err(22102): at org.jivesoftware.smack.Connection.login(Connection.java:353)
03-21 16:50:15.859: W/System.err(22102): at com.seu3s.main.LogInActivity$2.run(LogInActivity.java:90)
03-21 16:50:15.859: W/System.err(22102): at java.lang.Thread.run(Thread.java:856)
为此很是伤脑筋,网上查阅了一些资料与解决方案,得出结论:应该是安全设置问题,有人提议将ConnectionConfiguration配置成如下:
connConfig.setReconnectionAllowed(true);
connConfig.setCompressionEnabled(false);
connConfig.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
connConfig.setSASLAuthenticationEnabled(false);
按此设置更改之后,仍然无法解决问题......
既然客户端设置无法解决问题,那就看看服务器的设置,查看之后,发现
默认安全配置为:file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/624680699/QQ/WinTemp/RichOle/%7DML2MLM7FQ681AE%7D0HDJTUH.jpg
更改后安全配置如下:
更改后,问题解决,可以继续测试了......
03-21 16:50:15.223: W/IInputConnectionWrapper(22102): showStatusIcon on inactive InputConnection
03-21 16:50:15.857: W/System.err(22102): java.lang.IllegalStateException: Not connected to server.
03-21 16:50:15.857: W/System.err(22102): at org.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:488)
03-21 16:50:15.858: W/System.err(22102): at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:69)
03-21 16:50:15.858: W/System.err(22102): at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:353)
03-21 16:50:15.858: W/System.err(22102): at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:230)
03-21 16:50:15.858: W/System.err(22102): at org.jivesoftware.smack.Connection.login(Connection.java:353)
03-21 16:50:15.858: W/System.err(22102): at com.seu3s.main.LogInActivity$2.run(LogInActivity.java:90)
03-21 16:50:15.858: W/System.err(22102): at java.lang.Thread.run(Thread.java:856)
03-21 16:50:15.858: W/System.err(22102): java.lang.IllegalStateException: Not connected to server.
03-21 16:50:15.859: W/System.err(22102): at org.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:488)
03-21 16:50:15.859: W/System.err(22102): at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:69)
03-21 16:50:15.859: W/System.err(22102): at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:363)
03-21 16:50:15.859: W/System.err(22102): at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:230)
03-21 16:50:15.859: W/System.err(22102): at org.jivesoftware.smack.Connection.login(Connection.java:353)
03-21 16:50:15.859: W/System.err(22102): at com.seu3s.main.LogInActivity$2.run(LogInActivity.java:90)
03-21 16:50:15.859: W/System.err(22102): at java.lang.Thread.run(Thread.java:856)
为此很是伤脑筋,网上查阅了一些资料与解决方案,得出结论:应该是安全设置问题,有人提议将ConnectionConfiguration配置成如下:
connConfig.setReconnectionAllowed(true);
connConfig.setCompressionEnabled(false);
connConfig.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
connConfig.setSASLAuthenticationEnabled(false);
按此设置更改之后,仍然无法解决问题......
既然客户端设置无法解决问题,那就看看服务器的设置,查看之后,发现
默认安全配置为:file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/624680699/QQ/WinTemp/RichOle/%7DML2MLM7FQ681AE%7D0HDJTUH.jpg
更改后安全配置如下:
更改后,问题解决,可以继续测试了......