2014-10-23 12 views
8

Quando eseguo liquibase in JBoss ricevo il seguente Avvisa ma tutto viene aggiornato correttamente:Perché "Impossibile definire la classe" WARN dall'avvio del server?

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 

Qualsiasi StackTrace in avvio del server viene considerato un errore, nonostante non è segnato come un WARN, INFO o niente.

Perché succede?
Cosa posso fare per rimuovere questo stacktrace dall'avvio del server?

+0

Per quanto posso dire, manca la distribuzione.WebStories.war, il che probabilmente significa che i jsps non vengono compilati correttamente o non sono stati distribuiti. Prova a ricostruire il progetto e a distribuirlo di nuovo? –

+1

Il progetto viene distribuito correttamente utilizzando JBoss Tools ed eclipse. C'è solo un riferimento a questo problema che ho trovato: http://www.hascode.com/2014/07/java-ee-7-database-migrations-with-liquibase-and-wildfly/#Classloader_Issues Nel versione 3.1.1 ciò non si verifica. –

+0

Sembra esattamente il tuo problema, anche se il passaggio a una versione precedente non sembra molto allettante. –

risposta

10

Liquibase esegue la scansione interna del classpath utilizzando il classloader per trovare le classi che potrebbero essere estensioni di Liquibase. Parte di quella scansione sta colpendo alcune classi che sono in bundle con il barattolo di liquibase ma non fanno parte del normale processo liquibase update.

In particolare, sta controllando il codice che visualizza lo stato di database e liquibase che può essere utile in demo e risoluzione dei problemi e altro codice che può essere utilizzato per testare le estensioni.

Queste classi di utilizzo non standard fanno riferimento a dipendenze aggiuntive come jetty e junit e che normalmente non sono disponibili negli ambienti di produzione e quindi Liquibase si aspetta che alcune ClassNotFoundExceptions e il livello DEBUG registrino, passino e si aggiornino correttamente come si vede .

Nel tuo caso, sembra che il classloader JBoss abbia una funzione aggiuntiva per registrare a livello WARN qualsiasi ClassNotFoundException che viene lanciata nella catena fino al punto che Liquibase la ignora.

Una versione futura di Liquibase sarà meglio scissione tra la codebase "strumenti" e il codice di base "standard", ma per il momento le opzioni sarebbe:

  • Includere le dipendenze mancanti nel classpath (pontile e JUnit in base allo stacktrace)
  • Creare una classe di stub con lo stesso nome delle classi jetty e junit di riferimento per rendere felice il caricatore di classi.
  • impostare il livello di log per "org.jboss.modules" di un errore al fine di non registra i log WARN livello
+0

Sono interessato a "Una futura versione di Liquibase si dividerà meglio tra la base di codici" tools "e la base di codici" standard ". In questo caso, sono disposto ad aspettare una nuova versione per risolvere questo problema invece di creare problemi con il mio ambiente. Per ora sto usando la versione 3.1.1, che almeno non getta alcun WARN nella mia console. A proposito, questo sarà presto riparato o una priorità molto bassa? Questa informazione può influenzare il compromesso per aggiornare liquibase e cambiare il mio ambiente per essere compatibile o attendere una nuova versione. –

+0

Spero intorno a gennaio 2015, ma dipenderà da come va lo sviluppo. –

+2

Test con Liquibase 3.4.2 e Wildfly 9.0.2. Problema risolto – Scandinave

5

ho usato questa classe, che molto probabilmente sarà non lavoro su pontile ma su tutti gli altri server (tomcat, jboss/wildfly, weblogic, websphere, glassfish, tomee, ...) L'ho provato su tomcat e 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."); 
    } 
} 

Questo non è bello ma funziona.

Edit1:

ClassLoader è alla ricerca per la Classe org.eclipse.jetty.server.handler.AbstractHandler Dal momento che non siamo sul molo, la classe non può essere trovato dal classloader.

Una possibilità potrebbe essere quella di aggiungere il file jar pontile in Tomcat o il wildfly, MA questo sarà molto probabilmente causare problemi su Tomcat/wildfly, dal momento che implementano interfacce e classi anche attesi che sia, Jetty e wildfly/fornire Tomcat. Per evitare ciò, fino a quando non viene risolto da Liquibase, è necessario fornire a Classloader un'implementazione fittizia di AbstractHandler. Quindi il classloader è felice e trova AbstractHandler e il messaggio WARN è scomparso.

Come detto non è bello ma è una soluzione alternativa per sbarazzarsi dei messaggi dispari nel file di registro e nella console. Se siamo fortunati, liquibase può incorporare una correzione per questo bug minore in 3.4 o forse in 4.0.

+0

Ciao, puoi spiegare perché questa classe funziona? Grazie! –

+0

sicuro, controlla la mia estensione di risposta – cilap

Problemi correlati