Petr Dušek
Petr Dušek

Reputation: 627

java.lang.IllegalStateException: Class invariant violation when using Glassfish

I have some trouble with re-deployment. First deployment, its ok. But then it throws this exception. I have to restart GlassFish. Why is it necessary?

SEVERE: log4j:ERROR log4j called after unloading, see http://logging.apache.org/log4j/1.2/faq.html#unload.
SEVERE: 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.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:253)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:645)
at com.icesoft.faces.component.portlet.Portlet.<clinit>(Portlet.java:38)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:140)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:949)
at java.lang.reflect.Field.getFieldAccessor(Field.java:930)
at java.lang.reflect.Field.set(Field.java:680)
at 
...

SEVERE: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: java.util.concurrent.ExecutionException: com.sun.faces.config.ConfigurationException: Unable to parse document 'bundle://184.0:1/com/sun/faces/jsf-ri-runtime.xml': DTD factory class org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from DTDDVFactory.

Upvotes: 2

Views: 8249

Answers (1)

Avinash Singh
Avinash Singh

Reputation: 3787

It seems like you have another parser like xerces.jar in your app which is trying to override default parser of glassfish but is unable to do so during redeployment.

If you have any parser implementation jar then make it a default parser by adding

-Djava.endorsed.dirs=/myapp/lib/xerces.jar to your server startup.

http://www.java.net/forum/topic/glassfish/glassfish/cannot-deploy-application-includes-xerces-jar-glassfish-311

Upvotes: 1

Related Questions