无法使用 JMS 初始化上下文

Cant init context with JMS

我在设置 JMS 时遇到问题。我尝试使用 Active MQ 和 OpenJMS,但出现了同样的错误。我不知道如何解决它:

当我执行此操作时:

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.util.Hashtable;

public class Main {
    public static void main(String[] args) throws NamingException {
        Hashtable properties = new Hashtable();

        properties.put(Context.INITIAL_CONTEXT_FACTORY,
            "org.exolab.jms.jndi.InitialContextFactory");
        properties.put(Context.PROVIDER_URL, "tcp://localhost:3035/");

        Context context = new InitialContext(properties);
    }
}

我收到这个错误:

Exception in thread "main" javax.naming.NoInitialContextException: Cannot instantiate class: org.exolab.jms.jndi.InitialContextFactory [Root exception is java.lang.ClassNotFoundException: org.exolab.jms.jndi.InitialContextFactory]

经过一番谷歌搜索后,我认为问题是某个 jar 不在正确的类路径中,但所有答案都已经假设我知道哪个 jar 以及存储它的位置,但这里不是这种情况。

他们说的是哪个 Jar?我在哪里可以得到它?我需要把它存放在哪里?

顺便说一句,我正在使用 IntelliJ。你能给我指出正确的方向吗?

ActiveMQ正在运行(http://localhost:8161/显示ActiveMQ的网页)

以下是我创建项目的步骤: File -> New Project -> Java -> SDK1.8 -> Next -> Next -> Project Name: Test -> 右击src文件夹 -> New -> Java Class -> 名称:主要 -> 从上面粘贴代码 -> 运行 -> 错误

编辑:对于所有遇到相同错误的人:OpenJMS 带有一个 libfolder。安装这些库,它应该可以工作

Here 很好地解释了如何在 intellij 中向您的项目添加外部 jar,以及

Which Jar are they talking about? Where can i get it?

here 是一个有用的网站,您可以在其中使用标准作为 class 或包的名称来搜索 jar 文件。

我认为您需要的 jar 是 Openjms,这里是 link 下载它。