Поместите JAR-файл коннектора MySQL в WEB-INF / lib моей WAR, а не в $ CATALINA_HOME / common / lib? - PullRequest
3 голосов
/ 23 января 2009

Я собираюсь использовать MySQL с Hibernate на сервере Tomcat 5.5.x.

У меня есть , чтобы поместить mysql-connector-java-[version]-bin.jar в $CATALINA_HOME/common/lib/, или я могу поместить его в WEB-INF/lib в моем файле WAR с другими зависимостями моей библиотеки?

Было бы проще иметь его в моей WAR в WEB-INF/lib, так как я мог получить его с помощью репозитория Maven таким способом. Есть ли какие-то большие недостатки в том, что он есть в каталоге общих библиотек Tomcat?

1 Ответ

5 голосов
/ 23 января 2009

Если ваша банка является общей, то она загружается глобально в tomcat. Каждый веб-приложение видит это. Если вы поместите его в свое веб-приложение, его увидит только ваше веб-приложение. Я предполагаю, что Борис имеет в виду, что если какая-то часть вашей глобальной конфигурации tomcat загружает что-то, для чего требуется соединение mysql (например, пул соединений), тогда ему понадобится драйвер jdbc, так что он понадобится ему совместно. В противном случае нет.

Я полагаю, что есть конфигурация безопасности, которую вы можете настроить в конфигурации tomcat, которая хранит ее конфигурацию в БД. Если вы используете это, ему понадобится драйвер.

Зачем вам вещи в webapp / WEB-INF / lib? Ну, потому что он модульный, он является частью вашего веб-приложения, если вы перемещаете свое веб-приложение в другое место, ему не требуется дополнительная его часть, которая является частью вашей установки Tomcat. Обслуживание намного проще, если вы можете оставить свое веб-приложение непосредственно в стандартной установке tomcat. Другая причина - если у вас несколько веб-приложений, все они будут использовать общие файлы jar, что может вызвать конфликты библиотек и проблемы с версиями.

В общем, ставьте как можно меньше общего. Даже если у вас есть только одно приложение.

...