Tomcat не находит драйвер JDB C после импорта через Maven - PullRequest
1 голос
/ 11 июля 2020

Я новичок в JSP, поэтому немного поиграюсь с ним. Я создал проект Maven в Intellij и импортировал зависимости, которые мне нужны в моем pom.xml, а именно mysql-connector и servlet-api:

<dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.20</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

У меня есть файл JSP, который обращается к local MySQL база данных с использованием соответствующего драйвера.

<%
    String url = "jdbc:mysql://localhost:80/DemoJSP";
    String username = "root";
    String password = "";

    Class.forName("com.mysql.jdbc.Driver");
    Connection connection = DriverManager.getConnection(url, username, password);
%>

Однако, когда я запускаю сервер Tomcat, я получаю HTTP Status 500. Причиной этого является строка Class.forName("..."), поэтому выброшенное исключение - java.lang.ClassNotFoundException: com.mysql.jdbc.Driver. Я пробовал тысячи реимпортов Maven, но ничего не помогает. Есть ли что-то, чего мне не хватает?

PS: похожие вопросы, например Как использовать Maven для создания JSP + Servlet + TOMCAT + MySQL или Где мне разместить драйвер JDB C для пула соединений Tomcat? не решит мою проблему.

1 Ответ

1 голос
/ 11 июля 2020

Попробуйте URL-адрес для localhost port 3306 не 80.

И если вы получите сообщение об ошибке с часовым поясом, используйте эту строку:

String url = "jdbc:mysql://127.0.0.1:3306/DemoJSP";
String timezone = "?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
String username = "root";
String password = "";
Connection connection = DriverManager.getConnection(url + timezone, username, password);
...