Не найден подходящий драйвер для URL соединения (MySQL + WildFly) - PullRequest
0 голосов
/ 12 апреля 2020

Я столкнулся со следующей проблемой: мне нужно, чтобы мое веб-приложение работало с базой данных. Для этого я создал базу данных в MySQL. URL-адрес подключения для этой базы данных следующий: jdbc:mysql://localhost:3306/lab3?useUnicode=true&serverTimezone=UTC. Кроме того, я создал источник данных в консоли управления WildFly:

enter image description here

Я проверил соединение, все в порядке. Но когда я запускаю проект, я получаю следующую ошибку:

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/lab3?useUnicode=true&serverTimezone=UTC
13:28:15,524 ERROR [stderr] (default task-1)    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)
13:28:15,524 ERROR [stderr] (default task-1)    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
13:28:15,524 ERROR [stderr] (default task-1)    at deployment.lab5_ear_exploded.ear.web.war//model.Model.<init>(Model.java:13)
13:28:15,525 ERROR [stderr] (default task-1)    at deployment.lab5_ear_exploded.ear.web.war//controller.NewJSFManagedBean.<init>(NewJSFManagedBean.java:17)
13:28:15,525 ERROR [stderr] (default task-1)    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
13:28:15,525 ERROR [stderr] (default task-1)    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
13:28:15,526 ERROR [stderr] (default task-1)    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
13:28:15,526 ERROR [stderr] (default task-1)    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
13:28:15,526 ERROR [stderr] (default task-1)    at java.base/java.lang.Class.newInstance(Class.java:584)
13:28:15,527 ERROR [stderr] (default task-1)    at com.sun.jsf-impl@2.3.9.SP06//com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:162)
13:28:15,527 ERROR [stderr] (default task-1)    at com.sun.jsf-impl@2.3.9.SP06//com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:76)
13:28:15,527 ERROR [stderr] (default task-1)    at com.sun.jsf-impl@2.3.9.SP06//com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:387)
...

Вот как я пытаюсь подключиться к БД в коде:

@ApplicationScoped
public class Model {

    private Statement statement;

    public Model() {
        try {
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/lab3?useUnicode=true&serverTimezone=UTC", "root", "12345");
            statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("SELECT * FROM customer");
            if (resultSet.next()) {
                System.out.println(resultSet.getString("address"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

Итак, возможно, кто-то знает в чем проблема? Я буду признателен за любую помощь. Заранее спасибо!

UPD

Вот что находится внутри моего артефакта развертывания:

enter image description here

1 Ответ

0 голосов
/ 12 апреля 2020

Если вы используете Gradle, вам нужно добавить зависимость

    compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.19'

Если вы используете Maven, вам нужно добавить зависимость

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.19</version>
    </dependency>

Если вы хотите напрямую загрузить JAR и поместите в WEB-INF \ lib, затем загрузите отсюда

    https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.19/mysql-connector-java-8.0.19.jar

Если вы используете JNDI, тогда ваш код неверен, вам нужно скопировать эту войну в вашу директорию lib WilDFly и использовать только код JNDI

Ссылка: https://docs.jboss.org/jbossweb/2.1.x/jndi-resources-howto.html

...