Tengo una aplicación web maven de varios módulos que utiliza hibernate.Uso de Maven para implementar en Embedded Tomcat con un Datasource
Uso el objetivo de ejecución de tomcat: para ejecutarlo en el servidor de tomcat incrustado de maven. Todo funciona bien hasta ahora.
Pero ahora necesito cambiar de una configuración explicite jdbc en hibernate.properties a un origen de datos. Hice lo siguiente:
- hibernate.properties modificados
de
hibernate.connection.driver_class=oracle.jdbc.OracleDriver
hibernate.connection.url=jdbc:somejdbcurl
hibernate.connection.username=aUser
hibernate.connection.password=aPassword
a
hibernate.connection.datasource=java:comp/env/jdbc/datasourcename
- en web.xml añadí
<resource-ref> <res-ref-name>jdbc/datasourcename</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
- añadió una context.xml junto a la web.xml con el siguiente contenido:
<Context> <Resource name="jdbc/datasourcename" auth="Container" type="javax.sql.DataSource" username="aUser" password="aPassword" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:somejdbcurl" maxActive="2" maxIdle="2"/> </Context>
esto no funciona, que es esperado, ya que no encontré una manera de proporcionar el archivo jar, que contiene el controlador jdbc de Oracle. Yo esperaba una excepción ClassNotFound o algo similar, pero en cambio me dieron un
org.hibernate.exception.GenericJDBCException: Cannot open connection
con una causa raíz hacia abajo en la pila:
Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
Soooooo las preguntas son:
- Por qué doesn 't tomcat sabe que quiero que use Oracle Driver?
- ¿Cómo le digo al tomcat sobre el archivo jar que contiene el controlador?
que parece prometedor, intentaré eso mañana –
gracias por señalar la ubicación predeterminada del archivo de contexto .. Pasé unas horas persiguiendo eso .. –