2013-03-09 13 views
2

재배포에 약간의 문제가 있습니다. 첫 번째 배포, 해당 확인. 그러나이 예외를 throw합니다. GlassFish를 다시 시작해야합니다. 필요한 이유는 무엇입니까? 당신은 글래스 피쉬의 기본 파서를 무시하려고하지만, 재배치 동안 그렇게 할 수없는 귀하의 응용 프로그램에 xerces.jar 같은 다른 파서를 가지고있는 것처럼java.lang.IllegalStateException : 글래스 피시 사용시 클래스 불변의 위반

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. 

답변

1

는 것 같습니다.

어떤 파서 구현 항아리가있는 경우 다음 서버 시작에

-Djava.endorsed.dirs=/myapp/lib/xerces.jar을 추가하여 기본 파서합니다.

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

+0

감사합니다. 하지만 글쓰기 방법을 모르겠습니다. GlassFish의 일부 구성 파일을 편집하거나이 지시를 IDE의 일부 대화 상자 (NetBeans를 사용함)에 쓸 수 있어야합니다. –

+0

이걸 살펴 보았습니다. http://www.gerardsetho.net/2011/02/add-jvm-options-to-glassfish.html –

+0

이 작업을 수행했으나 같은 오류가 발생했습니다. - -Djava.endorsed.dirs = $ {com.sun.aas.installRoot}/modules/endorsed $ {path.separator} $ {com.sun.aas.installRoot}/lib/endorsed -Djava.endorsed.dirs =/myapp /lib/xerces.jar ...