Драйвер JDBC не загружается

Я уже видел много постов, в которых люди пытались добавить драйвер. Я использую intelij как IDE и добавляю драйвер в Modules => Dependencies => Add Jar; Итак, моя IDE идентифицировала драйвер и может показать мне его исходный файл. Моя проблема в том, что как только я запускаю свой сервер, я получаю сообщение об ошибке, что он не может найти драйвер:

Мой код:

private void createDB()
{
    try {
        Class.forName("com.mysql.jdbc.Driver");
        database = DriverManager.getConnection("jdbc:mysql://***:" + 3307 + "/**db", "", "");

    } catch (Exception e) {
        e.printStackTrace();
    }

}

Мое исключение:

> java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at java.net.URLClassLoader.findClass(Unknown Source)

вы используете maven или gradle или что-то в этом роде?

Alexander 31.03.2018 13:41

Вы можете показать нам свой файл сборки (build.gradle / settings.gradle или pom.xml)?

user991710 31.03.2018 13:41

@ user991710 Это в моем файле .iml: <orderEntry type = "module-library"> <library> <CLASSES> <root url = "jar: //$MODULE_DIR$/../librarys/mysql-connector-java-5.1 ‌ .46-bin.jar! / "/> </CLASSES> <JAVADOC /> <SOURCES /> </library> </orderEntry>

Jochaim Fischbach 31.03.2018 14:22

@Alexander Nopeits только на основе моего Java SDK

Jochaim Fischbach 31.03.2018 14:26

Какой контейнер сервлетов вы используете? Вероятно, драйвер jdbc необходимо настроить в библиотеке сервера, а не в пути к классам приложения. См. serverfault.com/q/77388/86698

Nathan Hughes 31.03.2018 14:30

@JochaimFischbach ClassNotFoundException возникает, когда ваш код (или библиотека, которую использует ваш код) не может быть найдена при попытке обратиться к этому классу (либо с помощью new, либо с помощью любого другого метода инициализации). Как упомянул Натан, JDBC jar, который вы используете, скорее всего, отсутствует в вашем пути к классам во время выполнения. После компиляции убедитесь, что требуемый jar присутствует в вашем каталоге build. См. Также этот ответ.

user991710 31.03.2018 15:10

@ user991710 Я снова переключился на Eclipse, но все равно получил ошибку. Lib отображается в моем пути к классу, а также существует в моей исходной папке проекта. Это расстраивает....

Jochaim Fischbach 31.03.2018 18:46

Драйвер jdbc используется контейнером сервлетов при создании пула соединений. Классы реализации драйверов обычно не используются приложением напрямую. См. Документацию для вашего контейнера сервлетов; jdbc jar необходимо разместить там, где контейнер сервлета может его найти. См. Ссылку, которую я разместил ранее.

Nathan Hughes 02.04.2018 04:29
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
8
70
0

Другие вопросы по теме