2015-02-25 3 views
0

Я новичок в XMPP. В течение целого дня я застрял в подключении к моему XMPP-серверу (Openfire версии 3.9.3) с Java. Я использую библиотеку Smack (версия 4.0.7). Вот простой код ...ошибка подключения к серверу xmpp (openfire) с использованием java

ConnectionConfiguration config =new ConnectionConfiguration("servername",5223); 
XMPPTCPConnection connection = new XMPPTCPConnection(config); 
    // Connect to the server 
    try { 
      connection.connect(); 
     connection.login("username", "password"); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (XMPPException e) { 
      e.printStackTrace(); 
     } catch (SmackException e) { 
      e.printStackTrace(); 
     } 

Но когда я запускаю этот код этой ошибки показывает ...

org.jivesoftware.smack.SmackException$NoResponseException 
at org.jivesoftware.smack.XMPPConnection.throwConnectionExceptionOrNoResponse(XMPPConnection.java:548) 
at org.jivesoftware.smack.tcp.XMPPTCPConnection.throwConnectionExceptionOrNoResponse(XMPPTCPConnection.java:867) 
at org.jivesoftware.smack.tcp.PacketReader.startup(PacketReader.java:113) 
at org.jivesoftware.smack.tcp.XMPPTCPConnection.initConnection(XMPPTCPConnection.java:482) 
at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectUsingConfiguration(XMPPTCPConnection.java:440) 
at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:811) 
at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:396) 
at test.third.<init>(third.java:19) 
at test.third.main(third.java:34) 

Там может быть глупая ошибка, и простое решение. Я googled, но почему-то я не получаю правильное решение.

ответ

0
public void connectAndLogin({ 

    connect(); 
    login(); 

} 

private void connect() { 
    /** 
    * Set server configuration 
    * 
    * connect to server  
    */ 
    setConfiguration(); 
    try { 
     getConnection().connect(); 
    } catch (XMPPException e) { 
     e.printStackTrace(); 
     setConnection(null); 
    } 
    } 

    private void setConfiguration() { 
     ConnectionConfiguration config = new ConnectionConfiguration(Constants.IP); 
     SmackConfiguration.setPacketReplyTimeout(Constants.PACKET_TIME_OUT); 
     System.out.println(SmackConfiguration.getVersion()); 
     config.setRosterLoadedAtLogin(false); 
     // config.setCompressionEnabled(true); 
     config.setVerifyChainEnabled(false); 
     config.setReconnectionAllowed(true); 
     config.setSASLAuthenticationEnabled(false); 
     config.setSecurityMode(SecurityMode.disabled); 
     config.setDebuggerEnabled(false); 
     connection = new XMPPConnection(config); 
} 

private void login() { 
    if(getConnection()!=null){ 


    String USER_NAME=""; 

    String PASSWORD=""; 

    try { 
     getConnection().login(USER_NAME,PASSWORD, Constants.RESOURCE); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 



    } 
} 
0

Попробуйте использовать порт 5222 вместо 5223. Это старый способ SSL, который обычно не используется больше.

Смежные вопросы