2010-10-29 19 views
7

Bu benim persistence.xml:jndi.properties'ten enjeksiyon sonrası JNDI'da veri kaynağı bulunamadı?

<persistence> 
    <persistence-unit name="MyUnit"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <jta-data-source>jdbc/abcDS</jta-data-source> 
    </persistence-unit> 
</persistence> 

Bu gerçek bir veri kaynağı ile gerçek uygulama sunucusu beri test sırasında veri kaynağı oluşturmak gerekiyordu src/test/resources dan jndi.properties dosya, devamsızlık olduğu:

java.naming.factory.initial=org.apache.openejb.client.LocalInitialContextFactory 
jdbc/abcDS=new://Resource?type=DataSource 
jdbc/abcDS.JdbcDriver=org.hsqldb.jdbcDriver 
jdbc/abcDS.JdbcUrl=jdbc:hsqldb:mem:testdb 
jdbc/abcDS.JtaManaged=true 
jdbc/abcDS.DefaultAutoCommit=false 
jdbc/abcDS.UserName=sa 
jdbc/abcDS.Password= 

Bu sınama sınıfı:

ot oluşturdu ve ben de görmeye devam ediyorum:
[...] 
javax.naming.NameNotFoundException: Name "jdbc/abcDS" not found. 
at org.apache.openejb.core.ivm.naming.IvmContext.federate(IvmContext.java:193) 
at org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:150) 
at org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:124) 
at org.apache.openejb.core.ivm.naming.ContextWrapper.lookup(ContextWrapper.java:115) 
at javax.naming.InitialContext.lookup(InitialContext.java:392) 
at com.XXX.FinderTest.startEJB(FinderTest.java:31) 
[...] 

Neyi yanlış yapıyorum? Lütfen yardım et!

ps. (??? neler) bu şekilde çalışır Bu arada: openejb:Resource/jdbc/abcDS

arama Yanı sıra injection in your TestCase alabilirsiniz eğer

ic.lookup("java:/openejb/Resource/jdbc/abcDS"); 
+0

Sunucu günlüklerinde herhangi bir şey var mı? –

+0

@ Thorbjørn "Sunucu" yok, test sürüşü döngüsü var. Aslında, gerçek bir uygulama sunucusu yerine gömülü bir OpenEJB var. – yegor256

cevap

7

tespit edilirse. Temel olarak,:

  1. initialContext.bind("inject", this)

examples.zip

EDIT'e Eğer içinde testcase-injection örneğe bakın boş src/test/resources/META-INF/application-client.xml veya ejb-jar.xml

  • @LocalClient
  • Çağrı ile testinizi ek açıklama eklemek arama hala başarısız s, günlük çıktınızı gönderin (konsol çıkışı).

  • +0

    Mükemmel çalışıyor, çok teşekkürler! – yegor256