2009-12-03 13 views
6

Mam roboczą definicję trwałości, która działa na testach poziomu Java. Teraz chcę włączyć to do aplikacji sieciowej, która definiuje połączenie z bazą danych jako JNDI w pliku context.xml. Co muszę zmienić, aby działało z JNDI zamiast persistence.xml lub przynajmniej uzyskać tam informacje?Jak skonfigurować WZP, aby używać JNDI?

+0

Udało ci się to zrobić? – test30

+1

Tak, ale moja odpowiedź ze szczegółami została usunięta bez ważnego powodu. Sprowadza się do korzystania ze źródeł danych JTA. Zobacz ten http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html/configuration.html. – javydreamercsw

Odpowiedz

1

Twój persistence.xml początek powinno być coś takiego (używając EclipseLink w realizacji), na jdbc/MyName nazwy JNDI:

<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> 

Oczywiście należy ustawić odpowiednią konfigurację dla twojego środowiska. W przykładzie używam nie-JTA DataSource: zgodnie z jednym z twoich komentarzy, wydaje się, że Twój DataSource nie jest zgodny z JTA. Dla Hibernate dostawca utrwalania powinien być inny.

0

musisz użyć pliku persistence.xml, gdy używasz JPA. ponieważ JPA musi sprawdzić plik persistence.xml. więc możesz używać persistence.xml i jndi w tym samym czasie.

Powiązane problemy