Начиная с версии 6.0.24, Tomcat поставляется с функцией обнаружения утечек памяти, что, в свою очередь, может привести к появлению такого рода предупреждающих сообщений, когда в веб-приложении / WEB-INF / lib есть драйвер, совместимый с JDBC 4.0, который автоматически- регистрирует себя во время запуска веб-приложения, используя API-интерфейс ServiceLoader, но не автоматически отменяет регистрацию себя во время завершения работы веб-приложения.Это сообщение является чисто неформальным, Tomcat уже предпринял соответствующие действия по предотвращению утечки памяти.
Что вы можете сделать?
Игнорировать эти предупреждения.Tomcat делает свою работу правильно.Фактическая ошибка в чужом коде (рассматриваемый драйвер JDBC), а не в вашем.Будьте счастливы, что Tomcat выполнил свою работу должным образом, и подождите, пока поставщик драйверов JDBC не исправит это, чтобы вы могли обновить драйвер.С другой стороны, вы не должны удалять драйвер JDBC в / WEB-INF / lib веб-приложения, а только в / lib сервера.Если вы по-прежнему храните его в / WEB-INF / lib веб-приложения, то вам следует вручную зарегистрировать и отменить его регистрацию с помощью ServletContextListener.
Выполните обновление до Tomcat 6.0.23 или более поздней версии, чтобы вас не беспокоили эти предупреждения.,Но это будет молча продолжать утекать память.Не уверен, хорошо ли это знать в конце концов.Такие утечки памяти являются одной из основных причин проблем OutOfMemoryError во время горячих развертываний Tomcat.
Переместите драйвер JDBC в папку Tomcat's / lib и получите источник данных пула соединений для управления драйвером.Обратите внимание, что встроенный DBCP Tomcat не отменяет регистрацию драйверов при закрытии.Смотрите также ошибку DBCP-322, которая закрывается как WONTFIX.Вы бы предпочли заменить DBCP другим пулом соединений, который выполняет свою работу лучше, чем DBCP.Например, HikariCP, BoneCP или, возможно, Tomcat JDBC Pool.