Flyway ClassNotFoundException:JavaUtilLogCreator

Flyway ClassNotFoundException:JavaUtilLogCreator,java,osgi,database-migration,flyway,Java,Osgi,Database Migration,Flyway,我正在使用Flyway 5.2.4和OSGI Bundle Activator。我想迁移bundle Start()方法上的数据库。 这是我的课堂: import org.flywaydb.core.Flyway; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; import org.

我正在使用Flyway 5.2.4和OSGI Bundle Activator。我想迁移bundle Start()方法上的数据库。 这是我的课堂:

import org.flywaydb.core.Flyway;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Activator implements BundleActivator {
    private final Logger log = LoggerFactory.getLogger(this.getClass());
    private ServiceRegistration serviceRegistration;

    public void start(BundleContext bundleContext) {
        log.info("Starting...");
        serviceRegistration = bundleContext.registerService(IConnector.class.getName(), new Connector(), null);
        log.info("Started.");

        //FlyWay Section
        Flyway flyway = Flyway.configure().dataSource("jdbc:postgresql://localhost:5432/", "postgres", "12345").load();
        flyway.migrate();
    }

    public void stop(BundleContext bundleContext) {
        log.info("Stopping...");
        serviceRegistration.unregister();
        log.info("Stopped.");
    }

}
如您所见,我使用slf4j作为我的记录器。也许这就是我在应用程序部署后在StackTrace中出现以下错误的原因:

java.lang.Exception: Could not start bundle mvn:internship/db-connector/1.0.0 in feature(s) feature-1.0.0: Activator start error in bundle db-connector [2343].
        at org.apache.karaf.features.internal.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:519)[20:org.apache.karaf.features.core:3.0.8]
        at org.apache.karaf.features.internal.FeaturesServiceImpl.installFeatures(FeaturesServiceImpl.java:474)[20:org.apache.karaf.features.core:3.0.8]
        at org.apache.karaf.features.internal.FeaturesServiceImpl.installFeature(FeaturesServiceImpl.java:415)[20:org.apache.karaf.features.core:3.0.8]
        at Proxy683d032e_ad2c_4b9a_98f7_baca7b5564f1.installFeature(Unknown Source)[:]
        at Proxyfff1bf4b_671e_4ff6_bb97_e0dabf9f20e8.installFeature(Unknown Source)[:]
        at org.apache.karaf.kar.internal.KarServiceImpl.installFeatures(KarServiceImpl.java:282)[89:org.apache.karaf.kar.core:3.0.8]
        at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:111)[89:org.apache.karaf.kar.core:3.0.8]
        at org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:93)[89:org.apache.karaf.kar.core:3.0.8]
        at Proxy40d8d25a_37b2_4855_a381_fbb78daa68ce.install(Unknown Source)[:]
        at Proxy068a2f57_120b_4ee8_b953_7c8262bae9a2.install(Unknown Source)[:]
        at org.apache.karaf.deployer.kar.KarArtifactInstaller.update(KarArtifactInstaller.java:62)[91:org.apache.karaf.deployer.kar:3.0.8]
        at Proxy3c143b4c_a2ef_49d0_870b_21a9b5f74704.update(Unknown Source)[:]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.update(DirectoryWatcher.java:1101)[7:org.apache.felix.fileinstall:3.5.2]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.update(DirectoryWatcher.java:898)[7:org.apache.felix.fileinstall:3.5.2]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:478)[7:org.apache.felix.fileinstall:3.5.2]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:355)[7:org.apache.felix.fileinstall:3.5.2]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:307)[7:org.apache.felix.fileinstall:3.5.2]
Caused by: org.osgi.framework.BundleException: Activator start error in bundle db-connector [2343].
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
        at org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)[org.apache.felix.framework-4.2.1.jar:]
        at org.apache.karaf.features.internal.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:516)[20:org.apache.karaf.features.core:3.0.8]
        ... 16 more
Caused by: java.lang.ExceptionInInitializerError
        at org.flywaydb.core.internal.util.FeatureDetector.isSlf4jAvailable(FeatureDetector.java:96)
        at org.flywaydb.core.internal.logging.LogCreatorFactory.getLogCreator(LogCreatorFactory.java:39)
        at org.flywaydb.core.api.logging.LogFactory.getLog(LogFactory.java:78)
        at org.flywaydb.core.internal.util.FeatureDetector.<clinit>(FeatureDetector.java:25)
        at org.flywaydb.core.internal.logging.LogCreatorFactory.getLogCreator(LogCreatorFactory.java:35)
        at org.flywaydb.core.api.logging.LogFactory.getLog(LogFactory.java:78)
        at org.flywaydb.core.Flyway.<clinit>(Flyway.java:86)
        at internship.connectors.postgresConnector.Activator.start(Activator.java:18)
        at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)
        ... 20 more
Caused by: org.flywaydb.core.api.FlywayException: Unable to instantiate class org.flywaydb.core.internal.logging.javautil.JavaUtilLogCreator : org.flywaydb.core.internal.logging.javautil.JavaUtilLogCreator
        at org.flywaydb.core.internal.util.ClassUtils.instantiate(ClassUtils.java:63)[2348:org.flywaydb.core:5.2.4]
        at org.flywaydb.core.internal.logging.LogCreatorFactory.getLogCreator(LogCreatorFactory.java:46)[2348:org.flywaydb.core:5.2.4]
        at org.flywaydb.core.api.logging.LogFactory.getLog(LogFactory.java:78)[2348:org.flywaydb.core:5.2.4]
        at org.flywaydb.core.internal.util.ClassUtils.<clinit>(ClassUtils.java:39)[2348:org.flywaydb.core:5.2.4]
        ... 30 more
Caused by: java.lang.ClassNotFoundException: org.flywaydb.core.internal.logging.javautil.JavaUtilLogCreator
        at java.net.URLClassLoader.findClass(Unknown Source)[:1.8.0_212]
        at java.lang.ClassLoader.loadClass(Unknown Source)[:1.8.0_212]
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)[:1.8.0_212]
        at java.lang.ClassLoader.loadClass(Unknown Source)[:1.8.0_212]
        at java.lang.Class.forName0(Native Method)[:1.8.0_212]
        at java.lang.Class.forName(Unknown Source)[:1.8.0_212]
        at org.flywaydb.core.internal.util.ClassUtils.instantiate(ClassUtils.java:61)[2348:org.flywaydb.core:5.2.4]
        ... 33 more
java.lang.Exception:无法启动捆绑包mvn:实习生/db连接器/1.0.0(在功能中)功能-1.0.0:捆绑包db连接器中的激活器启动错误[2343]。
位于org.apache.karaf.features.internal.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:519)[20:org.apache.karaf.features.core:3.0.8]
位于org.apache.karaf.features.internal.FeaturesServiceImpl.installFeatures(FeaturesServiceImpl.java:474)[20:org.apache.karaf.features.core:3.0.8]
位于org.apache.karaf.features.internal.FeaturesServiceImpl.installFeature(FeaturesServiceImpl.java:415)[20:org.apache.karaf.features.core:3.0.8]
位于Proxy683d032e_ad2c_4b9a_98f7_baca7b5564f1。installFeature(未知源)[:]
在Proxyfff1bf4b_671e_4ff6_bb97_e0dabf9f20e8处。installFeature(未知源)[:]
在org.apache.karaf.kar.internal.KarServiceImpl.installFeatures(KarServiceImpl.java:282)[89:org.apache.karaf.kar.core:3.0.8]
在org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:111)[89:org.apache.karaf.kar.core:3.0.8]
在org.apache.karaf.kar.internal.KarServiceImpl.install(KarServiceImpl.java:93)[89:org.apache.karaf.kar.core:3.0.8]
在Proxy40d8d25a_37b2_4855_a381_fbb78daa68ce处安装(未知源)[:]
在Proxy068a2f57_120b_4ee8_b953_7c8262bae9a2.install(未知源)[:]
在org.apache.karaf.deployer.kar.karatifactinstaller.update(karatifactinstaller.java:62)[91:org.apache.karaf.deployer.kar:3.0.8]
在Proxy3c143b4c_a2ef_49d0_870b_21a9b5f74704。更新(未知来源)[:]
在org.apache.felix.fileinstall.internal.DirectoryWatcher.update(DirectoryWatcher.java:1101)[7:org.apache.felix.fileinstall:3.5.2]
在org.apache.felix.fileinstall.internal.DirectoryWatcher.update(DirectoryWatcher.java:898)[7:org.apache.felix.fileinstall:3.5.2]
位于org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:478)[7:org.apache.felix.fileinstall:3.5.2]
在org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:355)[7:org.apache.felix.fileinstall:3.5.2]
在org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:307)[7:org.apache.felix.fileinstall:3.5.2]
原因:org.osgi.framework.BundleException:bundle db连接器[2343]中的激活器启动错误。
在org.apache.felix.framework.felix.activateBundle(felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
在org.apache.felix.framework.felix.startBundle(felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
在org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
在org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)[org.apache.felix.framework-4.2.1.jar:]
位于org.apache.karaf.features.internal.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:516)[20:org.apache.karaf.features.core:3.0.8]
... 还有16个
原因:java.lang.ExceptionInInitializeError
位于org.flywaydb.core.internal.util.FeatureDetector.isSlf4jAvailable(FeatureDetector.java:96)
位于org.flywaydb.core.internal.logging.LogCreatorFactory.getLogCreator(LogCreatorFactory.java:39)
位于org.flywaydb.core.api.logging.LogFactory.getLog(LogFactory.java:78)
位于org.flywaydb.core.internal.util.FeatureDetector.(FeatureDetector.java:25)
位于org.flywaydb.core.internal.logging.LogCreatorFactory.getLogCreator(LogCreatorFactory.java:35)
位于org.flywaydb.core.api.logging.LogFactory.getLog(LogFactory.java:78)
位于org.flywaydb.core.Flyway(Flyway.java:86)
在interpaint.connectors.postgresConnector.Activator.start(Activator.java:18)
位于org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
位于org.apache.felix.framework.felix.activateBundle(felix.java:2146)
... 20多
原因:org.flywaydb.core.api.FlywayException:无法实例化类org.flywaydb.core.internal.logging.javautil.JavaUtilLogCreator:org.flywaydb.core.internal.logging.javautil.JavaUtilLogCreator
在org.flywaydb.core.internal.util.ClassUtils.instantiate(ClassUtils.java:63)[2348:org.flywaydb.core:5.2.4]
在org.flywaydb.core.internal.logging.LogCreatorFactory.getLogCreator(LogCreatorFactory.java:46)[2348:org.flywaydb.core:5.2.4]
在org.flywaydb.core.api.logging.LogFactory.getLog(LogFactory.java:78)[2348:org.flywaydb.core:5.2.4]
位于org.flywaydb.core.internal.util.ClassUtils.(ClassUtils.java:39)[2348:org.flywaydb.core:5.2.4]
... 30多
原因:java.lang.ClassNotFoundException:org.flywaydb.core.internal.logging.javautil.JavaUtilLogCreator
在java.net.URLClassLoader.findClass(未知源)[:1.8.0_212]
在java.lang.ClassLoader.loadClass(未知源)[:1.8.0_212]
在sun.misc.Launcher$AppClassLoader.loadClass(未知源)[:1.8.0_212]
在java.lang.ClassLoader.loadClass(未知源)[:1.8.0_212]
在java.lang.Class.forName0(本机方法)[:1.8.0_212]
在java.lang.Class.forName(未知源代码)[:1.8.0_212]
在org.flywaydb.core.internal.util.ClassUtils.instantiate(ClassUtils.java:61)[2348:org.flywaydb.core:5.2.4]
... 33多
所以,我不知道这里出了什么问题,我使用了官方Flyway网站上最简单的例子,得到了这个错误。 我已经尝试删除我自己的记录器。我认为它可以让FlyWay使用它的记录器,但一切都是一样的(同样的错误)

你能帮我吗


另外,这似乎与我的问题有关。

确实,Flyway在OSGi中可能存在问题。也许你可以