java:与openfire服务器的连接

java:与openfire服务器的连接,java,openfire,smack,Java,Openfire,Smack,我无法连接到服务器。 请帮我纠正这个错误。 我想知道所有需要的罐子。 如何进行初始smack配置。 我想用java构建一个简单的聊天应用程序 import java.io.IOException; import org.jivesoftware.smack.AbstractXMPPConnection; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPException; i

我无法连接到服务器。 请帮我纠正这个错误。 我想知道所有需要的罐子。 如何进行初始smack配置。 我想用java构建一个简单的聊天应用程序

 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();
      }
    }
}

错误

线程“main”java.lang.NoClassDefFoundError中的异常:org/jxmpp/util/XmppStringUtils 位于org.jivesoftware.smack.provider.ProviderManager.getKey(ProviderManager.java:314) 位于org.jivesoftware.smack.provider.ProviderManager.removeIQProvider(ProviderManager.java:217) 位于org.jivesoftware.smack.provider.ProviderManager.addIQProvider(ProviderManager.java:199) 位于org.jivesoftware.smack.provider.ProviderManager.addLoader(ProviderManager.java:128) 位于org.jivesoftware.smack.initializer.UrlInitializer.initialize(UrlInitializer.java:54) 位于org.jivesoftware.smack.SmackInitialization.loadSmackClass(SmackInitialization.java:232) 位于org.jivesoftware.smack.SmackInitialization.parseClassesToLoad(SmackInitialization.java:193) 位于org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:163) 位于org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:148) 位于org.jivesoftware.smack.SmackInitialization(SmackInitialization.java:116) 位于org.jivesoftware.smack.SmackConfiguration.getVersion(SmackConfiguration.java:96) 位于org.jivesoftware.smack.ConnectionConfiguration。(ConnectionConfiguration.java:38) at Tests.main(Tests.java:14) 原因:java.lang.ClassNotFoundException:org.jxmpp.util.XmppStringUtils 在java.net.URLClassLoader$1.run(URLClassLoader.java:372) 在java.net.URLClassLoader$1.run(URLClassLoader.java:361) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.net.URLClassLoader.findClass(URLClassLoader.java:360) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:424) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 还有13个
我在Maven项目中使用了Smack,下面是我定义的依赖项。

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
    <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) {

            }

        }
    }