Ho difficoltà ad eseguire l'aggiornamento a Hibrernate 4.3.x da 4.2.7. Ho ottenuto questa eccezione:Hibernate 4.3 + Tomcat 7 Impossibile cercare il nome JNDI
Caused by: javax.naming.NameNotFoundException: Name [java:comp/env/jdbc/data] is not bound in this Context. Unable to find [java:comp].
at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
at org.apache.naming.NamingContext.lookup(NamingContext.java:154)
at javax.naming.InitialContext.lookup(InitialContext.java:415)
at org.hibernate.engine.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:114)
... 82 more
sto usando Tomcat 7.0.29 (7.0.47 provato pure) e JDK 7 (v25). Non ci sono problemi con Hibernate 4.2.7.
Ecco il mio persistence.xml:
<persistence-unit name="data" transaction-type="RESOURCE_LOCAL">
<non-jta-data-source>java:comp/env/jdbc/data</non-jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="false" />
<property name="hibernate.format_sql" value="true" />
</properties>
</persistence-unit>
Ma non credo che il problema è qui. Ho fatto un po 'di ricerca di debug e ho scoperto quanto segue:
JndiServiceImpl#locate(String jndiName)
crea un contesto iniziale che differisce.
4.3.0 - org.apache.naming.NamingContext
4.2.7 - org.apache.naming.SelectorContext
A parte questo, non ho trovato nessun più differenze.
Ho trovato alcuni argomenti simili per questo problema, ma nessuno di aiuto. Grazie per qualsiasi aiuto.
Hai definito qualsiasi origine dati in server.xml? –
No, non l'ho fatto. Dovrei? Non ho mai definito alcun DS in server.xml. – vernjan
Qualcuno ha postato un bug report qui: https://hibernate.atlassian.net/browse/HHH-8818 –