2016-02-25 1 views
0

Я не могу подключиться к серверу. , пожалуйста, помогите мне с ошибкой. Я хочу знать обо всех необходимых баночках. как сделать первоначальную конфигурацию smack. Я хочу создать для простого приложения чата в java.java: подключение к серверу openfire

import java.io.IOException; 
import org.jivesoftware.smack.AbstractXMPPConnection; 
import org.jivesoftware.smack.SmackException; 
import org.jivesoftware.smack.XMPPException; 
import org.jivesoftware.smack.tcp.XMPPTCPConnection; 
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration; 


public class Tests 
{ 

    public static void main(String[] args) throws SmackException,  IOException, XMPPException 
    { 

     XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder() 
     .setHost("127.0.0.1") 
     .setPort(5222) 
     .build(); 
     AbstractXMPPConnection conn1 = new XMPPTCPConnection(config); 

     try 
     { 
      conn1.connect(); 
     } 
     catch (XMPPException e) 
     { 
      e.printStackTrace(); 
     } 
     try 
     { 
      conn1.login("username","password"); 
     } 
     catch (XMPPException e) 
     { 
      e.printStackTrace(); 
     } 
    } 

}

Ошибка

Exception in thread "main" java.lang.NoClassDefFoundError: org/jxmpp/util/XmppStringUtils 
    at org.jivesoftware.smack.provider.ProviderManager.getKey(ProviderManager.java:314) 
    at org.jivesoftware.smack.provider.ProviderManager.removeIQProvider(ProviderManager.java:217) 
    at org.jivesoftware.smack.provider.ProviderManager.addIQProvider(ProviderManager.java:199) 
    at org.jivesoftware.smack.provider.ProviderManager.addLoader(ProviderManager.java:128) 
    at org.jivesoftware.smack.initializer.UrlInitializer.initialize(UrlInitializer.java:54) 
    at org.jivesoftware.smack.SmackInitialization.loadSmackClass(SmackInitialization.java:232) 
    at org.jivesoftware.smack.SmackInitialization.parseClassesToLoad(SmackInitialization.java:193) 
    at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:163) 
    at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:148) 
    at org.jivesoftware.smack.SmackInitialization.<clinit>(SmackInitialization.java:116) 
    at org.jivesoftware.smack.SmackConfiguration.getVersion(SmackConfiguration.java:96) 
    at org.jivesoftware.smack.ConnectionConfiguration.<clinit>(ConnectionConfiguration.java:38) 
    at Tests.main(Tests.java:14) 
Caused by: java.lang.ClassNotFoundException: org.jxmpp.util.XmppStringUtils 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 13 more 

ответ

0

Я использовал чмок в Maven проекта и здесь зависимостей, которые я определил.

<dependency> 
     <groupId>xpp3</groupId> 
     <artifactId>xpp3</artifactId> 
     <version>1.1.4c</version> 
    </dependency> 
    <dependency> 
     <groupId>xpp3</groupId> 
     <artifactId>xpp3_min</artifactId> 
     <version>1.1.4c</version> 
    </dependency> 
    <dependency> 
     <groupId>xpp3</groupId> 
     <artifactId>xpp3_xpath</artifactId> 
     <version>1.1.4c</version> 
    </dependency> 

    <dependency> 
     <groupId>org.igniterealtime.smack</groupId> 
     <artifactId>smack-tcp</artifactId> 
     <version>4.0.6</version> 
    </dependency> 
    <dependency> 
     <groupId>org.igniterealtime.smack</groupId> 
     <artifactId>smack-extensions</artifactId> 
     <version>4.0.6</version> 
    </dependency> 

и в коде:

ConnectionConfiguration config = new ConnectionConfiguration("IM_DOMAIN", 5222); 
    config.setDebuggerEnabled(false); 
    config.setSecurityMode(SecurityMode.disabled); 
    XMPPTCPConnection con = new XMPPTCPConnection(config); 

    try { 

     con.connect(); 
     con.login("USERNAME", "PASSWORD"); 

     Message msg = new Message("RECIPIENT_JID"); 
     msg.setBody("message"); 
     msg.setType(Type.chat); 
     con.sendPacket(msg); 

    } catch (SmackException | XMPPException | IOException | InterruptedException e) { 
     throw e; 

    } finally { 
     if (null != con) { 
      try { 
       con.disconnect(); 
      } catch (NotConnectedException e) { 

      } 

     } 
    }