Perché bitronix (BTM) non vincola la transazione dell'utente in JNDI?
Domanda
Sembra che Bitronix, come suggerito altrove, funzioni molto bene. Tuttavia, sono sconcertato da un problema. Ricevo questa eccezione da Hibernate, quando provo a salvare la sessione dopo chiamo TransactionManager.begin()
:
14:21:32,350 ERROR [JTATransaction] Could not find UserTransaction in JNDI
javax.naming.NameNotFoundException: Name UserTransaction is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:769)
Non vedo alcuna prova che Bitronix vincoli la transazione dell'utente a JNDI. Come faccio a farlo?
Soluzione
Questa è la risposta qui: https://github.com/bitronix/btm/blob/master/btm-docs/src/main/asciidoc/Hibernate2x.adoc#txManager
In poche parole, non c'è modo per BTM di legarsi automaticamente al server JNDI di Tomcat a meno che non modifichi tu stesso la configurazione di Tomcat. Questo è spiegato qui: https: / /github.com/bitronix/btm/blob/master/btm-docs/src/main/asciidoc/TomcatWithBtm2x.adoc