2013-03-17 37 views
0

我有一個獨立客戶端,我不想在我的Glassfish服務器上部署。通過客戶端,我想通過點對點通信模式發佈消息。我發現this偉大的教程,它使用註釋我不能使用,因爲我有一個獨立的客戶端。我發現以下解決方案在計算器上:無法在獨立客戶端上實例化initialcontext

Context jndiContext; 
private ConnectionFactory connectionFactory; 
private static Queue queue; 

public TweetSender() throws NamingException{ 
    jndiContext = new InitialContext(); 
    connectionFactory = (ConnectionFactory) jndiContext.lookup("JMS/KwetterConnectionFactory"); 
    queue = (Queue) jndiContext.lookup("JMS/KwetterQueue"); 
} 

我還發現我必須從glassfish目錄中導入一些庫。所以我做:Project properties

我得到以下錯誤:

javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.impl.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.impl.SerialInitContextFactory] 

我在做什麼錯?

編輯

我發現這個問題暫時解決,雖然我覺得這是不正確的(我想,當我要遷移的項目,我可能會問題。我刪除,我從GlassFish檢索的庫使用「絕對路徑」 lib文件夾,並添加他們

+0

這https://blogs.oracle.com/randystuph/entry/injecting_jndi_datasources_for_junit可能有助於 – 2013-03-17 15:37:42

+0

謝謝,我嘗試過,但沒有改變 – 2013-03-17 15:41:13

+0

看看這個問題爲好,也許這就是問題所在:HTTP://計算器.COM /問題/ 3461310 /何燦我綁定-A-數據源到一個-的InitialContext換的JUnit測試 – 2013-03-17 15:42:35

回答

0

一個解決方案可以是包裝您的獨立客戶端應用程序在一個jar文件,如:。myclient.jar 並運行它作爲使用appclient實用的GlassFish應用程序客戶端:

applcient -client myclient.jar 

appclient實用程序可以在這裏找到:[glassfish home dir]/glassfish/bin。