[英]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");
我得到一個ClassNotFoundException
的org.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.