Hibernateを使用するマルチモジュールMavenWebアプリケーションがあります。
Mavenの組み込みTomcatサーバーで実行するために、tomcat:runゴールを使用します。これまでのところ、すべて正常に動作しています。
しかし、ここで、hibernate.propertiesの明示的なjdbc構成からデータソースに切り替える必要があります。私は次のことをしました:
- 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
- web.xmlに追加しました
<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>
Oracle jdbcドライバーを含むjarファイルを提供する方法が見つからなかったため、これは機能しません。これは予想どおりです。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'
Soooooo質問は次のとおりです。
- tomcatがOracleドライバーを使用したいことを知らないのはなぜですか?
- ドライバを含むjarファイルについてTomcatに通知するにはどうすればよいですか?