2012-04-07 5 views
0

모든 것이 잘 작동했습니다. 나는 무엇인가를 바꿨다는 것을 알지 못하지만 분명히 바뀐 것이 있습니다.Eclipse에서 Tomcat을 멋지게 사용하고있었습니다. 이제 서버를 시작할 수 없습니다. 시작하려고 할 때 다음 예외가 발생합니다.

Apr 7, 2012 12:28:29 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Exception sending context initialized event to listener instance of class org.apache.myfaces.webapp.StartupServletContextListener 
java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester 
    at org.apache.myfaces.config.impl.digester.DigesterFacesConfigUnmarshallerImpl.<init>(DigesterFacesConfigUnmarshallerImpl.java:42) 
    at org.apache.myfaces.config.FacesConfigurator.getUnmarshaller(FacesConfigurator.java:262) 
    at org.apache.myfaces.config.FacesConfigurator.feedStandardConfig(FacesConfigurator.java:566) 
    at org.apache.myfaces.config.FacesConfigurator.configure(FacesConfigurator.java:487) 
    at org.apache.myfaces.webapp.AbstractFacesInitializer.buildConfiguration(AbstractFacesInitializer.java:296) 
    at org.apache.myfaces.webapp.Jsp21FacesInitializer.initContainerIntegration(Jsp21FacesInitializer.java:73) 
    at org.apache.myfaces.webapp.AbstractFacesInitializer.initFaces(AbstractFacesInitializer.java:118) 
    at org.apache.myfaces.webapp.StartupServletContextListener.contextInitialized(StartupServletContextListener.java:111) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.Digester 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) 
    ... 18 more 
Apr 7, 2012 12:28:29 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Error listenerStart 
Apr 7, 2012 12:28:29 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/webApp_appNameT] startup failed due to previous errors 
Apr 7, 2012 12:28:29 PM org.apache.catalina.core.StandardContext listenerStop 
SEVERE: Exception sending context destroyed event to listener instance of class org.apache.myfaces.webapp.StartupServletContextListener 
java.lang.IllegalStateException: No Factories configured for this Application. This happens if the faces-initialization does not work at all - make sure that you properly include all configuration settings necessary for a basic faces application and that all the necessary libs are included. Also check the logging output of your web application and your container for any exceptions! 
If you did that and find nothing, the mistake might be due to the fact that you use some special web-containers which do not support registering context-listeners via TLD files and a context listener is not setup in your web.xml. 
A typical config looks like this; 
<listener> 
    <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class> 
</listener> 

    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:172) 
    at org.apache.myfaces.context.servlet.FacesContextImplBase.getApplication(FacesContextImplBase.java:131) 
    at org.apache.myfaces.webapp.AbstractFacesInitializer._dispatchApplicationEvent(AbstractFacesInitializer.java:239) 
    at org.apache.myfaces.webapp.AbstractFacesInitializer.destroyFaces(AbstractFacesInitializer.java:273) 
    at org.apache.myfaces.webapp.StartupServletContextListener.contextDestroyed(StartupServletContextListener.java:153) 
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4819) 
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5466) 
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Apr 7, 2012 12:28:29 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks 
SEVERE: The web application [/webApp_appNameT] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [[email protected]]) and a value of type [org.apache.myfaces.config.RuntimeConfig] (value [[email protected]]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. 
Apr 7, 2012 12:28:29 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks 
SEVERE: The web application [/webApp_appNameT] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [[email protected]]) and a value of type [org.apache.myfaces.context.servlet.StartupFacesContextImpl] (value [[email protected]3]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. 
Apr 7, 2012 12:28:29 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks 
SEVERE: The web application [/webApp_appNameT] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [[email protected]]) and a value of type [org.apache.myfaces.context.servlet.StartupFacesContextImpl] (value [[email protected]b]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. 
Apr 7, 2012 12:28:29 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
Apr 7, 2012 12:28:29 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
Apr 7, 2012 12:28:29 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 1756 ms 
+2

배포 할 라이브러리입니다. 적어도 평민 - 소화조를 놓치고있어. –

+0

@DaveNewton 어디에서 commons-digester jar를 넣어야합니까? 30 분 전에 일 했으니 까 내 혼란이 일어난거야? – Dale

+1

나는 그것이 어디로 갔는지 정말로 모른다. –

답변

3
Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.Digester 

이 방금 언급 한 클래스가 런타임 클래스 경로에서 누락되어 있음을 알려줍니다. 패키지 이름이 암시 하듯이, Apache Commons Digester는 http://commons.apache.org/digester에 있습니다. JAR 파일을 다운로드하여 웹 응용 프로그램의 런타임 클래스 경로 (예 : /WEB-INF/lib)가 포함하는 경로 중 하나에 놓으면이 문제가 사라집니다.

+0

/WEB-INF/lib에 jar 파일을 추가했는데 동일한 결과가 나타납니다. 그 항아리는 30 분 전에 작동하지 않았어. 다른 아이디어? – Dale

4

나는 동일한 문제가있었습니다. Eclipse의 Webapp 및 Tomcat이 훌륭하게 실행 된 다음 Eclipse가 일시 중단되었습니다. 나는 TaskManager로 그것을 죽여야 만했다. 그러나 바람둥이를 다시 시작할 때 오류 위의 java.lang.NoClassDefFoundError : org/apache/commons/digester/Digester 이 표시되었습니다.

웹 응용 프로그램이 이전에 멋지게 실행 되었기 때문에 의미가 없습니다. 나는 에 의해 그것을 해결했다 이클립스 바람둥이 webapp 디렉토리 청소.

  1. 서버 탭 -> 웹 응용 프로그램 -> 모듈 디렉토리 삭제를 클릭하십시오.
  2. 이동하여 서버 탭 -> 마우스 오른쪽 버튼 사용 톰캣 인스턴스를 클릭 -> 정리 ...

오류가 사라진 후 있고 웹 애플리케이션은 예전처럼 다시 달렸다.

관련 문제