2017-06-06 16 views
0

我在設置JMS時遇到了問題。我嘗試使用Active MQ和OpenJMS,但發生同樣的錯誤。關於如何解決這個問題蔭無言以對:與JMS無關的init上下文

當我執行此:

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] 

經過一番google搜索,我認爲這個問題是一個罐子是不是在正確的類路徑,但所有的答案已經假定我知道哪個jar和哪裏存儲它,但這不是這裏的情況。

他們在說哪個罐子?我在哪裏可以得到它?我需要在哪裏存儲它?

Iam使用IntelliJ btw。你能指出我正確的方向嗎?

ActiveMQ是工作(http://localhost:8161/顯示的ActiveMQ網頁)

下面是我對我如何創建項目步驟: 文件 - >新建項目 - >爪哇 - > SDK1.8 - >下一步 - >下一步 - >項目名稱:測試 - >右鍵單擊src文件夾 - >新建 - > Java類 - >名稱:主 - >從上面粘貼代碼 - >運行 - >錯誤

編輯:所有人都有相同的錯誤: OpenJMS帶有一個libfolder。安裝這些庫,它應該工作

回答

0

Here是如何將外部罐添加到的IntelliJ項目一個很好的解釋,以及關於對

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

here是一個有用的網站,在那裏你可以搜索jar文件使用標準作爲類或包的名稱。

我覺得你需要的罐子是Openjms,這裏是一個link來下載它。

+0

謝謝你的回答。我不得不安裝3個缺課。現在出現了另一個問題。我真的不知道它真的很難讓JMS工作,或者我只是做錯了。這是現在的錯誤: 線程「main」中的異常javax.naming.NamingException:無法連接到JNDI提供程序[根異常是java.net.ConnectException:連接被拒絕:連接] – Loading

+0

@加載您的代碼嘗試更改'「 tcp:// localhost:3035 /「'for tcp:// localhost:61616 /」'這是ActiveMQ的默認地址,或者您使用的是OpenJMS客戶端,請嘗試使用OpenJMS服務器而不是ActiveMQ的服務器 –

+0

非常感謝。我只是完全安裝了錯誤的罐子。當下載openJMs時,它們爲您提供一個文件夾調用庫。不知道我必須使用這些。 – Loading