У меня есть многомодульное веб-приложение maven, которое использует hibernate.
Я использую цель tomcat: run, чтобы запустить ее на встроенном сервере tomcat maven.Пока все работает нормально.
Но теперь мне нужно переключиться с явной конфигурации jdbc в hibernate.properties на источник данных.Я сделал следующее:
- изменил hibernate.properties
с
hibernate.connection.driver_class=oracle.jdbc.OracleDriver
hibernate.connection.url=jdbc:somejdbcurl
hibernate.connection.username=aUser
hibernate.connection.password=aPassword
на
hibernate.connection.datasource=java:comp/env/jdbc/datasourcename
<resource-ref>
<res-ref-name>jdbc/datasourcename</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
- и добавил context.xml рядом с web.xml со следующим содержимым:
<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>
Это не сработает, что и ожидается, поскольку я не нашел способа предоставить файл jar, содержащий драйвер Oracle jdbc.Я ожидал исключения ClassNotFound или чего-то подобного, но вместо этого я получил
org.hibernate.exception.GenericJDBCException: Cannot open connection
с коренной причиной в стеке:
Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
Оооочень вопросы:
- Почему tomcat не знает, что я хочу, чтобы он использовал драйвер Oracle?
- Как мне сообщить tomcat о файле jar, который содержит драйвер?