Warum macht Tomcat-werfen', - java.lang.IllegalStateException: Klassen-Invarianten-Verletzung' bei deimplementierung?
Ich habe eine web-Anwendung (Tomcat 6, log4j 1.2.16), die beginnt mit einem listener. Deinstallation von löst die Anwendung die folgende Ausnahme:
INFO (HqListener.java:28) - HqListener exited!
log4j:ERROR log4j called after unloading, see http://logging.apache.org/log4j/1.2/faq.html#unload.
java.lang.IllegalStateException: Class invariant violation
at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199)
at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
at org.apache.log4j.Logger.getLogger(Logger.java:117)
at com.mchange.v2.log.log4j.Log4jMLog.getMLogger(Log4jMLog.java:51)
at com.mchange.v2.log.MLog.getLogger(MLog.java:145)
at com.mchange.v2.sql.SqlUtils.<clinit>(SqlUtils.java:37)
at com.mchange.v2.c3p0.DataSources.pooledDataSource(DataSources.java:290)
at com.mchange.v2.c3p0.DataSources.pooledDataSource(DataSources.java:316)
at org.hibernate.connection.C3P0ConnectionProvider.configure(C3P0ConnectionProvider.java:181)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:143)
at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:51)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:90)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2863)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2859)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1870)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
at net.hq.util.Db.init(Db.java:15)
at net.hq.process.ConnectionGateway.run(ConnectionGateway.java:89)
at java.lang.Thread.run(Thread.java:662)
Exception in thread "HQ Gateway Thread" java.lang.NullPointerException
at net.hq.process.ConnectionGateway.run(ConnectionGateway.java:129)
at java.lang.Thread.run(Thread.java:662)
Jul 3, 2011 3:03:53 AM org.apache.catalina.core.StandardContext stop
HqListener.java
ist mein Zuhörer und es meldet einen erfolgreichen Herunterfahren.
Wie kann ich loswerden dieser Ausnahme-Nachricht?
- Sie vielleicht auf der Suche nach einer Konfiguration log4j, ich habe ähnliches Problem mit Anwendungen in tomcat6, die funktioniert "fine" in tomcat5.5
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie das jira-bug für Ihre Lösung: http://java.net/jira/browse/GLASSFISH-16767
Ähnlichen Problem behoben, bei dem auf stackoverflow hier: Deinstallation von einem Grails-App von Glassfish wird einer Klasse Invarianten-Verletzung
Einstellung der Eigenschaft
in der domain.xml Datei in Glassfish behebt das Problem; nicht sicher, wo Sie in Tomcat, vielleicht server.xml?
Die Art, wie ich dieses problem gelöst (in glassfish-Umgebung) ist zu vermeiden, deklarieren Sie den logger als statische, z.B.
Wenn Sie entfernen
static
aus der obigen Erklärung, Sie erhalten nicht mehr die obige Fehlermeldung.