java - 我在使用 smack 4.2 Openfire 创建 XMPP 客户端时遇到问题

标签 java intellij-idea xmpp openfire smack

我想创建一个简单的 XMPP 客户端来连接到我的 Openfire 服务器。我在运行代码时遇到以下问题。

代码:

public void setConnection() {

    try {

        XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration.builder();
        config.setUsernameAndPassword(userName,password);
        config.setResource("temp");
        config.setXmppDomain("undercrroft");

        AbstractXMPPConnection connection = new XMPPTCPConnection(config.build());
        connection.connect();
    } catch (InterruptedException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (SmackException e) {
        e.printStackTrace();
    } catch (XMPPException e) {
        e.printStackTrace();
    }

错误:

Information:java: Errors occurred while compiling module 'Messenger'
Information:javac 1.8.0_121 was used to compile java sources
Information:16/4/17 1:52 AM - Compilation completed with 2 errors and 0 warnings in 871ms
/home/paradox/Desktop/Project/Messenger/src/ConnectServer.java
Error:(28, 19) java: cannot access org.jxmpp.stringprep.XmppStringprepException
                class file for org.jxmpp.stringprep.XmppStringprepException not found
Error:(29, 19) java: cannot access org.jxmpp.jid.DomainBareJid
                class file for org.jxmpp.jid.DomainBareJid not found

这些是我的导入:

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;

谢谢。

最佳答案

您缺少所需的 jxmpp 库。请查看 Smack 文档,其中列出了所有依赖项:https://github.com/igniterealtime/Smack/wiki/Smack-4.2-Readme-and-Upgrade-Guide#using-eclipses-android-development-tools-adt-ant-based-build

请注意,强烈建议使用依赖项管理器(Gradle、Maven、Ivy)来防止此类问题。

关于java - 我在使用 smack 4.2 Openfire 创建 XMPP 客户端时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43430990/

相关文章:

java - 如何一步测量排序算法的时间?

java - 如何在 IntelliJ 中使用我的 JPA 实体填充数据库

java - 如何测试一个intellij插件

java - Java 中不必要的拆箱 - 如何重构代码?

java - Hibernate批量操作迁移数据库

java - Archaius 的属性更改监听器

java - 处理 borderlayout zk 上的事件折叠栏

ios - 使用适用于 iOS 的 XMPP 框架 : Receiving presence when a subscriber becomes available/unavailable

java - 503 "service-unavailable"查询给定用户的文件时出错 (mod_mam)

asp.net - ASP.NET 中的 Jabber 集成