[英]tomcat 8.5.x tomcat-jdbc.jar vs official oracle ojdbc6.jar driver
[英]Where should the JDBC driver JAR files reside on a Tomcat deployment with a datasource?
我有使用Spring,Hibernate,Tomcat7和MySql的java Web應用程序。 我使用Datasource進行數據庫操作。 我不是很清楚加載jar文件( Tomcat-jdbc.jar
和Mysql-connector.jar
)的標准位置是什么? 如果我在CATALINA_HOME/lib/
或webapps/myApp/WEB-INF/lib
保留罐子,它就可以工作。 但我被告知只使用來自/WEB-INF/lib/
CATALINA_HOME / lib /和mysql-connector.jar
的Tomcat-jdbc,它為Sql Driver
提供了ClassNotFound
異常。 有人能告訴我這些罐子的正確位置嗎?
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
<property name="initialSize" value="${db.initialSize}" />
<property name="minIdle" value="${db.minIdle}" />
<property name="maxActive" value="${db.maxActive}" />
<property name="maxIdle" value="${db.maxIdle}" />
<property name="testWhileIdle" value="${db.testWhileIdle}" />
<property name="minEvictableIdleTimeMillis" value="${db.minEvictableIdleTimeMillis}" />
<property name="timeBetweenEvictionRunsMillis" value="${db.timeBetweenEvictionRunsMillis}" />
<property name="validationQuery" value="${db.validationQuery}" />
</bean>
這取決於誰在管理數據源。
如果您在自己的/WEB-INF/lib
應用程序中手動構建和管理數據源(如new SomeDataSource()
等),則可以將JDBC驅動程序JAR文件放在webapp的/WEB-INF/lib
。 但是如果appserver碰巧在它自己的/lib
提供了相同的JDBC驅動程序JAR文件,那么你也可以使用它。
但是,如果你指示appserver自己管理數據源而你只是通過@Resource
等在你的webapp中使用它,那么JDBC驅動程序JAR文件必須放在appserver自己的/lib
,這是一個非常簡單的原因,因為數據源是在appserver的啟動時准備的,完全獨立於任何(將)部署的Web應用程序。 此數據源又可在所有Web應用程序之間共享。 如果JDBC驅動程序JAR文件位於尚未部署的Web應用程序之一,那么從技術上講它就不起作用了。
當談到要決定的罐子的位置時,拇指規則是:
JVM的Bootstrap類
系統類加載器類(如上所述)
/ WEB-INF /您的Web應用程序的類/WEB-INF/lib/*.jar
您的Web應用程序$ CATALINA_HOME / common / classes
$ CATALINA_HOME /普通/核准/ *。JAR
$ CATALINA_HOME /普通/ i18n中/ *。JAR
$ CATALINA_HOME / common / lib目錄/ *。JAR
$ CATALINA_BASE /共享/班
$ CATALINA_BASE /共享/ lib目錄/ *。JAR
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.