Search code examples
javanoclassdeffounderrorflyway

NoClassDefFoundError when using Flyway


The following call (I replaced sensitive information with <>):

flyway
-url=jdbc:oracle:thin:@//<server_name>:<port_number>/<service_name>
-jarDirs=<jar_directory_paths>
-locations=filesystem:<path>
-user=<user> -password=<password> info

Produce the following error:

Flyway output: Flyway 4.2.0 by Boxfuse

Exception in thread "main" java.lang.NoClassDefFoundError: oracle/dms/console/DMSConsole at oracle.jdbc.driver.DMSFactory.(DMSFactory.java:44) at oracle.jdbc.driver.PhysicalConnection.createDMSSensors(PhysicalConnection.java:4202) at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:628) at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:217) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:28) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:537) at org.flywaydb.core.internal.util.jdbc.DriverDataSource.getConnectionFromDriver(DriverDataSource.java:416) at org.flywaydb.core.internal.util.jdbc.DriverDataSource.getConnection(DriverDataSource.java:381) at org.flywaydb.core.internal.util.jdbc.JdbcUtils.openConnection(JdbcUtils.java:51) at org.flywaydb.core.Flyway.execute(Flyway.java:1418) at org.flywaydb.core.Flyway.info(Flyway.java:1097) at org.flywaydb.commandline.Main.executeOperation(Main.java:152) at org.flywaydb.commandline.Main.main(Main.java:103) Caused by: java.lang.ClassNotFoundException: oracle.dms.console.DMSConsole at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 13 more

Any ideas what could be the cause?


Solution

  • The missing class in the exception message is in the v8 Oracle JDBC driver and subsequent ones. You should be able to resolve the problem by upgrading your installation to the latest version of the driver.