簡體   English   中英

如何通過JNDI從JBoss檢索數據源

[英]How to retrieve a DataSource from JBoss via JNDI

我想做的是根據每個JNDI從本地運行的JBoss(EAP 5.1)檢索數據源。 它在已部署的DAO中可以正常工作,但是我似乎誤解了一些東西,因為當我試圖在測試用例中獲取數據源時,嘗試時我總是得到javax.naming.NoInitialContextException

        Properties env = new Properties();
        env.put(Context.PROVIDER_URL, "jnp://localhost:1099");

        final InitialContext ic = new InitialContext(env);
        ds = (DataSource) ic.lookup(DATASOURCE_NAME);  

如果我添加

        env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");

我得到一個ClassNotFoundExceptionorg.jnp.interfaces.NamingContextFactory

作為JNDI和JBoss的新手,我被困在這一點上。 搜索網絡只會增加我的困惑,因為我發現的都是分散的信息,我嘗試通過反復試驗來應用這些信息,但沒有任何實際進展。

謝謝

您正在測試什么功能? 它是檢索數據源還是一些實際的數據庫代碼? 如果是后者,那么我建議完全不使用JNDI並使用本地DataSource實現。

此線程顯示如何使用Commons DBCP設置本地數據源。

http://forum.springsource.org/showthread.php?16670-Problem-running-JUNIT-test-with-JNDI-datasource

如果您確實需要JNDI方面,此示例說明如何使用最小的值填充InitialContext來獲取數據源。 您可能可以使用與上述相同的Commons DBCP配置來配置所需的數據源。

http://blogs.oracle.com/randystuph/entry/injecting_jndi_datasources_for_junit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM