2011-09-15 23 views
0

私がしようとしているのは、JNDIごとにローカルに実行されているJBoss(EAP 5.1)からDataSourceを取得することです。 それが展開DAOの内部で正常に動作しますが、私は、私はテストケースでDataSourceを取得しようとしていたとき、私はJNDI経由でJBossからDataSourceを取得する方法

 env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); 
を追加した場合、私は

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

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

をしようとしたときjavax.naming.NoInitialContextExceptionを取得しておくような何かを誤解しているようです

私はJNDIとJBossへの新たなのでorg.jnp.interfaces.NamingContextFactory

ためClassNotFoundExceptionを取得し、私はその時点でこだわっています。実際の進歩がない試行錯誤によって適用しようとする情報が散在していることがわかったので、ウェブを検索するだけで私の混乱が増します。

ありがとうございました

答えて

1

どのような機能をテストしていますか?それはデータソースまたは実際のデータベースコードの取得ですか?後者の場合は、JNDIをまったく使用せず、ローカルのDataSource実装を使用することをお勧めします。

このスレッドは、Commons DBCPを使用してローカルデータソースを設定する方法を示しています。

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

あなたが本当にJNDI側面が必要な場合は、この例では、バックDataSourceを取得する値の最小とInitialContextを移入する方法を示しています。あなたはおそらく上記と同じCommons DBCP設定を使用して、必要なDataSourceを設定することができます。

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

+0

いくつかのSQL文をテストしようとしました。ローカルDSアプローチははるかに理にかなっています。ありがとうございました。 – kostja

関連する問題