为什么服务器启动"无法定义类"WARN?

Fag*_*ack 8 java logging jboss liquibase

当我在JBoss中执行liquibase时,我得到以下WARN,但所有内容都正确更新:

12:32:01,499 WARN  [org.jboss.modules] (ServerService Thread Pool -- 49) Failed to define class liquibase.sdk.watch.WatchCommand$DynamicContentHandler in Module "deployment.WebStories.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link liquibase/sdk/watch/WatchCommand$DynamicContentHandler (Module "deployment.WebStories.war:main" from Service Module Loader)
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:407) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:254) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.Module.loadModuleClass(Module.java:518) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.2.0.CR1]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.loadClass(DefaultPackageScanClassResolver.java:358) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.loadImplementationsInJar(DefaultPackageScanClassResolver.java:406) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.findAllClasses(DefaultPackageScanClassResolver.java:226) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:116) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.findImplementations(DefaultPackageScanClassResolver.java:84) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.ServiceLocator.findClassesImpl(ServiceLocator.java:202) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.ServiceLocator.findClasses(ServiceLocator.java:177) [liquibase-core-3.2.2.jar:]
    at liquibase.database.DatabaseFactory.<init>(DatabaseFactory.java:25) [liquibase-core-3.2.2.jar:]
    at liquibase.database.DatabaseFactory.getInstance(DatabaseFactory.java:40) [liquibase-core-3.2.2.jar:]
    at liquibase.integration.servlet.LiquibaseServletListener.executeUpdate(LiquibaseServletListener.java:211) [liquibase-core-3.2.2.jar:]
    at liquibase.integration.servlet.LiquibaseServletListener.contextInitialized(LiquibaseServletListener.java:106) [liquibase-core-3.2.2.jar:]
    at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3777) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
    at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.2.0.Alpha1-redhat-4.jar:7.2.0.Alpha1-redhat-4]
    at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.2.0.Alpha1-redhat-4.jar:7.2.0.Alpha1-redhat-4]
    at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.2.0.Alpha1-redhat-4.jar:7.2.0.Alpha1-redhat-4]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_11]
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [rt.jar:1.7.0_11]
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) [rt.jar:1.7.0_11]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_11]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_11]
    at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_11]
    at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: java.lang.NoClassDefFoundError: org/eclipse/jetty/server/handler/AbstractHandler
    at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_11]
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791) [rt.jar:1.7.0_11]
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [rt.jar:1.7.0_11]
    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:338) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:402) [jboss-modules.jar:1.2.0.CR1]
    ... 31 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.server.handler.AbstractHandler from [Module "deployment.WebStories.war:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.2.0.CR1]
    ... 36 more

12:32:01,532 WARN  [org.jboss.modules] (ServerService Thread Pool -- 49) Failed to define class liquibase.sdk.supplier.database.AllDatabaseTypes in Module "deployment.WebStories.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link liquibase/sdk/supplier/database/AllDatabaseTypes (Module "deployment.WebStories.war:main" from Service Module Loader)
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:407) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:254) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.Module.loadModuleClass(Module.java:518) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.2.0.CR1]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.loadClass(DefaultPackageScanClassResolver.java:358) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.loadImplementationsInJar(DefaultPackageScanClassResolver.java:406) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.findAllClasses(DefaultPackageScanClassResolver.java:226) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:116) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.findImplementations(DefaultPackageScanClassResolver.java:84) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.ServiceLocator.findClassesImpl(ServiceLocator.java:202) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.ServiceLocator.findClasses(ServiceLocator.java:177) [liquibase-core-3.2.2.jar:]
    at liquibase.database.DatabaseFactory.<init>(DatabaseFactory.java:25) [liquibase-core-3.2.2.jar:]
    at liquibase.database.DatabaseFactory.getInstance(DatabaseFactory.java:40) [liquibase-core-3.2.2.jar:]
    at liquibase.integration.servlet.LiquibaseServletListener.executeUpdate(LiquibaseServletListener.java:211) [liquibase-core-3.2.2.jar:]
    at liquibase.integration.servlet.LiquibaseServletListener.contextInitialized(LiquibaseServletListener.java:106) [liquibase-core-3.2.2.jar:]
    at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3777) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
    at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.2.0.Alpha1-redhat-4.jar:7.2.0.Alpha1-redhat-4]
    at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.2.0.Alpha1-redhat-4.jar:7.2.0.Alpha1-redhat-4]
    at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.2.0.Alpha1-redhat-4.jar:7.2.0.Alpha1-redhat-4]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_11]
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [rt.jar:1.7.0_11]
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) [rt.jar:1.7.0_11]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_11]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_11]
    at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_11]
    at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: java.lang.NoClassDefFoundError: org/junit/experimental/theories/ParameterSupplier
    at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_11]
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791) [rt.jar:1.7.0_11]
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [rt.jar:1.7.0_11]
    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:338) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:402) [jboss-modules.jar:1.2.0.CR1]
    ... 31 more
Caused by: java.lang.ClassNotFoundException: org.junit.experimental.theories.ParameterSupplier from [Module "deployment.WebStories.war:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.2.0.CR1]
    ... 36 more

12:32:01,546 WARN  [org.jboss.modules] (ServerService Thread Pool -- 49) Failed to define class liquibase.sdk.supplier.database.AllDatabases in Module "deployment.WebStories.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link liquibase/sdk/supplier/database/AllDatabases (Module "deployment.WebStories.war:main" from Service Module Loader)
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:407) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:254) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.Module.loadModuleClass(Module.java:518) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.2.0.CR1]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.loadClass(DefaultPackageScanClassResolver.java:358) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.loadImplementationsInJar(DefaultPackageScanClassResolver.java:406) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.findAllClasses(DefaultPackageScanClassResolver.java:226) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:116) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.findImplementations(DefaultPackageScanClassResolver.java:84) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.ServiceLocator.findClassesImpl(ServiceLocator.java:202) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.ServiceLocator.findClasses(ServiceLocator.java:177) [liquibase-core-3.2.2.jar:]
    at liquibase.database.DatabaseFactory.<init>(DatabaseFactory.java:25) [liquibase-core-3.2.2.jar:]
    at liquibase.database.DatabaseFactory.getInstance(DatabaseFactory.java:40) [liquibase-core-3.2.2.jar:]
    at liquibase.integration.servlet.LiquibaseServletListener.executeUpdate(LiquibaseServletListener.java:211) [liquibase-core-3.2.2.jar:]
    at liquibase.integration.servlet.LiquibaseServletListener.contextInitialized(LiquibaseServletListener.java:106) [liquibase-core-3.2.2.jar:]
    at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3777) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
    at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.2.0.Alpha1-redhat-4.jar:7.2.0.Alpha1-redhat-4]
    at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.2.0.Alpha1-redhat-4.jar:7.2.0.Alpha1-redhat-4]
    at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.2.0.Alpha1-redhat-4.jar:7.2.0.Alpha1-redhat-4]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_11]
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [rt.jar:1.7.0_11]
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) [rt.jar:1.7.0_11]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_11]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_11]
    at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_11]
    at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: java.lang.NoClassDefFoundError: org/junit/experimental/theories/ParameterSupplier
    at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_11]
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791) [rt.jar:1.7.0_11]
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [rt.jar:1.7.0_11]
    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:338) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:402) [jboss-modules.jar:1.2.0.CR1]
    ... 31 more
Caused by: java.lang.ClassNotFoundException: org.junit.experimental.theories.ParameterSupplier from [Module "deployment.WebStories.war:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.2.0.CR1]
    ... 36 more

12:32:01,652 ERROR [stderr] (ServerService Thread Pool -- 49) INFO 23/10/14 12:32: liquibase: Successfully acquired change log lock

12:32:02,336 ERROR [stderr] (ServerService Thread Pool -- 49) INFO 23/10/14 12:32: liquibase: Reading from public.databasechangelog

12:32:02,383 ERROR [stderr] (ServerService Thread Pool -- 49) INFO 23/10/14 12:32: liquibase: Successfully released change log lock
Run Code Online (Sandbox Code Playgroud)

服务器启动中的任何堆栈跟踪都被视为错误,尽管它被标记为WARN,INFO或NOTHING.

为什么会这样?
如何从服务器启动中删除此堆栈跟踪?

Nat*_*and 10

Liquibase使用您的类加载器在内部扫描您的类路径,以查找可能是Liquibase扩展的类.部分扫描是打几个与liquibase jar捆绑在一起但不属于正常liquibase update过程的类.

特别是,它正在检查显示数据库和liquibase状态的代码,这些代码可以用于演示和故障排除以及可用于测试扩展的其他代码.

这些非标准用法类引用了其他依赖项,例如jetty和junit,这些依赖项通常在生产环境中不可用,因此Liquibase期望一些ClassNotFoundExceptions和DEBUG级别记录它们,继续运行,并且正如您所看到的那样正确更新.

在您的情况下,似乎JBoss类加载器还有一个额外的功能,可以在WARN级别记录它运行的任何ClassNotFoundExceptions,将其抛出链接到Liquibase忽略它的位置.

未来的Liquibase版本将更好地分配"工具"代码库和"标准"代码库,但现在你的选择是:

  • 在类路径中包含缺少的依赖项(基于stacktrace的jetty和junit)
  • 创建足够的存根类,与引用的jetty和junit类相同,以使类加载器满意.
  • 将"org.jboss.modules"的日志级别设置为ERROR,以便不记录WARN级别的日志

  • 用liquibase 3.4.2和Wildfly 9.0.2进行测试.问题解决了 (2认同)

cil*_*lap 6

我已经使用过这个类,它可能不适用于jetty,但是在所有其他服务器上(tomcat,jboss/wildfly,weblogic,websphere,glassfish,tomee,...)我已经在tomcat和wildfly上测试了它.

package org.eclipse.jetty.server.handler;

/**
 * Workaround for this issues in liquibase.
 * http://stackoverflow.com/questions/26530677/why-failed-to-define-class-warn-from-server-startup.
 * https://liquibase.jira.com/browse/CORE-2024.
 *
 * @author cilap
 *
 */
public class AbstractHandler {

   /**
    * Trace to logfile the workaround.
    */
   public AbstractHandler() {
      System.err.println("Workaround for http://stackoverflow.com/questions    /26530677/why-failed-to-define-class-warn-from-server-startup and "
            + "https://liquibase.jira.com/browse/CORE-2024");
      System.err.println("please remove this from the repository as soon as the bug is fixed on liquibase.");
   }
}
Run Code Online (Sandbox Code Playgroud)

这不好,但它的工作原理.

EDIT1:

类加载器正在搜索类org.eclipse.jetty.server.handler.AbstractHandler 因为我们不在Jetty上,所以类加载器无法找到类.

一个办法是到码头的jar文件添加到Tomcat或wildfly,这个很可能会导致在Tomcat /问题wildfly,因为他们实施也有望接口和类这两个,码头和Wildfly/tomcat的提供.为了避免这种情况 - 直到它被Liquibase修复 - 你必须为Classloader提供一个AbstractHandler的虚拟实现.所以类加载器很高兴,发现AbstractHandler和WARN消息消失了.

如上所述这不是很好,但是解决方法是摆脱日志文件和控制台中的奇怪消息.如果我们很幸运,liquibase可能会在3.4或4.0中修复这个小错误.