2009-12-03 14 views
6

Java düzey testleri üzerinde çalışan bir çalışma kalıcılığı tanımım var. Şimdi bunu, context.xml dosyasında JNDI olarak veritabanı bağlantısını tanımlayan bir web uygulamasına dahil etmek istiyorum. Persistence.xml yerine JNDI ile çalışmasını sağlamak veya en azından oradan bilgi almak için neye ihtiyacım var? JPA kullanırken persistence.xml dosyasını kullanmanız gerekir.JPA JNDI'yi nasıl kullanılır?

+0

Bunu yapmayı başardınız mı? – test30

+1

Evet, ancak detaylarımın cevabı iyi bir sebepten dolayı silindi. JTA veri kaynaklarını kullanmak için aşağı geliyor. Bu http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html/configuration.html adresine bakın. – javydreamercsw

cevap

1

Sizin persistence.xml başlangıcı jdbc/myname Jndi adı için, (uygulama olarak EclipseLinkkullanarak) böyle bir şey olmalı: Elbette

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"> 
    <persistence-unit name="myPersistenceUnit" transaction-type="RESOURCE_LOCAL">  
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
    <non-jta-data-source>java:comp/env/jdbc/MYNAME</non-jta-data-source> 
    <class>org.test.entity.MyEntity</class> 
... 
    </persistence-unit> 
<persistence> 

Eğer uygun yapılandırmayı belirlesin çevreniz için. Örnekte JTA olmayan bir DataSource kullanın: yorumlarınızdan birine göre, DataSource JTA uyumlu değil gibi görünüyor. Hazırda Bekletme için kalıcı sağlayıcı farklı olmalıdır.

0

Çünkü JPA, persistence.xml dosyasını kontrol etmelidir. böylece persistence.xml ve jndi'yi aynı anda kullanabilirsiniz.