¿Por qué Bitronix (BTM) no vincula la transacción del usuario a JNDI?
Pregunta
Parece que Bitronix, como se sugiere en otra parte, funciona muy bien. Sin embargo, estoy perplejo por un problema con él. Recibo esta excepción de Hibernate, cuando intento guardar la sesión después de llamo a 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)
No puedo ver ninguna evidencia de que Bitronix vincule la transacción del usuario a JNDI. ¿Cómo hago para que haga eso?
Solución
Esto se responde aquí: https://github.com/bitronix/btm/blob/master/btm-docs/src/main/asciidoc/Hibernate2x.adoc#txManager
En pocas palabras, no hay forma de que BTM se una automáticamente al servidor JNDI de Tomcat a menos que cambie usted mismo la configuración de Tomcat. Esto se explica aquí: https: / /github.com/bitronix/btm/blob/master/btm-docs/src/main/asciidoc/TomcatWithBtm2x.adoc