Почему API org.flywaydb.core.Flyway не загружает встроенный драйвер mysql - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь выполнить миграцию при запуске приложения, используя программный API Flyway, но, похоже, не удается загрузить драйверы mysql.Я использую Gradle Все работает нормально, если я использую командную строку (предположительно, потому что я могу указать драйвер), но я получаю следующую ошибку при запуске приложения:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
Caused by: org.flywaydb.core.api.FlywayException: Unable to instantiate JDBC driver: com.mysql.cj.jdbc.Driver => Check whether the jar file is present
    at org.flywaydb.core.internal.jdbc.DriverDataSource.<init>(DriverDataSource.java:141)
    at org.flywaydb.core.internal.jdbc.DriverDataSource.<init>(DriverDataSource.java:107)
    at org.flywaydb.core.api.configuration.ClassicConfiguration.setDataSource(ClassicConfiguration.java:1226)
    at org.flywaydb.core.api.configuration.FluentConfiguration.dataSource(FluentConfiguration.java:741)
    ... 8 more
Caused by: org.flywaydb.core.api.FlywayException: Unable to instantiate class com.mysql.cj.jdbc.Driver : com.mysql.cj.jdbc.Driver
    at org.flywaydb.core.internal.util.ClassUtils.instantiate(ClassUtils.java:63)
    at org.flywaydb.core.internal.jdbc.DriverDataSource.<init>(DriverDataSource.java:137)
    ... 12 more
Caused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.flywaydb.core.internal.util.ClassUtils.instantiate(ClassUtils.java:61)
    ... 13 more

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Thx.Это исправило мою проблему.Я использовал

 runtimeOnly "mysql:mysql-connector-java:8.0.14"
0 голосов
/ 12 октября 2018

Кажется, это проблема коннектора mysql.Я понижен до 6.0. + И работает нормально.

compile ('mysql:mysql-connector-java:6.0.+')
...