WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Следующие инструкции основаны на инструкциях для Tomcat-5.x, доступного с
http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html
, который актуален в то время, когда этот документ был написан. Во-первых, установите файл Затем формируйте JNDI DataSource, добавляя декларацию ресурса к
Connector/J вводит средство вместо того, чтобы использовать значение
Отметьте, что В целом следуйте за инструкциями по установке, которые идут с вашей
версией Tomcat, поскольку способ, которым вы формируете источники данных в
Tomcat время от времени меняется, и если вы будете использовать неправильный
синтаксис в своем XML-файле, вы, скорее всего, закончите с
исключением, подобным следующему: Отметьте что автозагрузка драйверов, имеющих класс
Глава 12. Connector/J с Tomcat
.jar
, который
идет с Connector/J в $CATALINA_HOME/common/lib
так, чтобы это было доступно всем приложениям, установленным в контейнере.$CATALINA_HOME/conf/server.xml
в
контексте, который определяет ваше веб-приложение:
<Context ....>
...
<Resource name="jdbc/MySQLDB"
auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/MySQLDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>5</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>SELECT 1</value>
</parameter>
<parameter>
<name>testOnBorrow</name>
<value>true</value>
</parameter>
<parameter>
<name>testWhileIdle</name>
<value>true</value>
</parameter>
<parameter>
<name>timeBetweenEvictionRunsMillis</name>
<value>10000</value>
</parameter>
<parameter>
<name>minEvictableIdleTimeMillis</name>
<value>60000</value>
</parameter>
<parameter>
<name>username</name>
<value>someuser</value>
</parameter>
<parameter>
<name>password</name>
<value>somepass</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/test</value>
</parameter>
</ResourceParams>
</Context>
validationQuery
в
SELECT 1
, возможно использовать
validationQuery
со значением
/* ping */
.
Это посылает пинг в сервер, который тогда возвращает фиктивный набор
результатов. Это более легкое решение с точки зрения нагрузки.
У этого также есть то преимущество, что используя типы связи
ReplicationConnection
или
LoadBalancedConnection
, пинг
пошлют на все активные связи. Следующий отрывок XML иллюстрирует, как
выбрать этот вариант:
<parameter>
<name>validationQuery</name>
<value>/* ping */</value>
</parameter>
/* ping */
должен быть определен точно.
Error: java.sql.SQLException: Cannot load JDBC driver class 'null '
SQL state: null
META-INF/service/java.sql.Driver
в JDBC 4.0
более поздних версиях, может быть причиной неподходящего развертывания
драйвера Connector/J Tomcat в Windows. А именно, Connector/J jar остается
блокированным. Это проблема инициализации, которая не связана с драйвером.
Возможные обходы следующие: используйте
"antiResourceLocking=true
" как атрибут контекста
Tomcat или удалите каталог META-INF/
.
Найди своих коллег! |
Вы можете направить письмо администратору этой странички, Алексею Паутову.