Hi,
seit gestern versuche ich schon Spring zu überreden mit JTA zusammen zu arbeiten. Die Angaben die sich im Netz darüber finden lassen sind zum Teil erschreckend widersprüchlich.
Oberflächlich sieht es eigentlich ganz einfach aus.
In den Beiträgen die ich gefunden habe soll Spring den EntityManager über ein JNDI-Lookup bekommen können, etwa so:
Meine persistence.xml:
Das Problem ist nun, dass der JNDI-Lookup ins leere läuft und eine javax.naming.NameNotFoundException geworfen wird. Ich habe schon gefühlte 100 JNDI-Namenskonventionen durchprobiert. Nix.
Hier hatte jemand das selbe Problem und konnte dies durch ein explizites setzen eines JNDI-Names in der PersistinceUnit lösen. Er hat allerdings JBoss verwendet. Gibt es für Glassfish ein entsprechendes Gegenstück?
Vielleicht bin ich aber auch völlig auf dem Holzweg!?
Ich bin für jeden Lösungsvorschlag offen, solange er dazu führt die DB mit Spring unter Java EE zum laufen zu bekommen. 🙂
seit gestern versuche ich schon Spring zu überreden mit JTA zusammen zu arbeiten. Die Angaben die sich im Netz darüber finden lassen sind zum Teil erschreckend widersprüchlich.
Oberflächlich sieht es eigentlich ganz einfach aus.
In den Beiträgen die ich gefunden habe soll Spring den EntityManager über ein JNDI-Lookup bekommen können, etwa so:
Code:
<jee:jndi-lookup id="entityManagerFactory" jndi-name="persistenceWeb" />
<tx:jta-transaction-manager/>
Meine persistence.xml:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="persistenceWeb" transaction-type="JTA">
<jta-data-source>postgreDataSource</jta-data-source>
<class>
...
</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
</persistence-unit>
</persistence>
Das Problem ist nun, dass der JNDI-Lookup ins leere läuft und eine javax.naming.NameNotFoundException geworfen wird. Ich habe schon gefühlte 100 JNDI-Namenskonventionen durchprobiert. Nix.
Hier hatte jemand das selbe Problem und konnte dies durch ein explizites setzen eines JNDI-Names in der PersistinceUnit lösen. Er hat allerdings JBoss verwendet. Gibt es für Glassfish ein entsprechendes Gegenstück?
Vielleicht bin ich aber auch völlig auf dem Holzweg!?
Ich bin für jeden Lösungsvorschlag offen, solange er dazu führt die DB mit Spring unter Java EE zum laufen zu bekommen. 🙂