Такое же приложение сервлета проекта не работает, но метод "hello world" в том же проекте да. Вот картина проекта.
Версии:
Intellij IDEA - 2018.2
Версия драйвера mySQL: 8.0.11, драйвер com.mysql.cj.jdbc.Driver
сервлет 9.0.81
В коде:
Class.forName(dbDriver).newInstance();
dbConnection = DriverManager.getConnection(connectionUrl, userName, password);
Исключение:
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver...
КСТАТИ:
То же исключение, которое я получаю и без зависимости mysql в PON.xml
Итак, это проблема, или я чего-то не хватает. Спасибо
UPDATE
SOLVED: нам нужно добавить библиотеку в Artifact.
Убедитесь, что все необходимые банки также включены в конфигурацию Artifact, которую вы развертываете на сервере приложений.
Class.forName
все еще очень необходим.DriverManager
автоматически загружает драйверы из исходного (системного) пути к классам, а не из контекстных путей к классам. Однако этого обычно избегают, используя источники данных вместо (непосредственно) с помощьюDriverManager
. Либо источник данных имеет прямой доступ к драйверу, либо его конфигурация заставляет вас в любом случае указывать имя класса драйвера.