2014-02-13 4 views
0

도움이 될 것입니다. 내 작업 공간에있는 다른 두 개의 프로젝트에 의존하는 웹 응용 프로그램을 실행 중입니다. 이 두 프로젝트는 내 작업 공간의 다른 3 개의 프로젝트에 더 의존합니다. 작업 공간에있는 프로젝트에는 오류가 없습니다. 톰캣 내에서 웹 응용 프로그램을 실행하면 다음과 같은 오류가 발생합니다 :Eclipse - 웹 응용 프로그램 Tomcat 배포 borked

java.lang.NoClassDefFoundError가 : COM/텔레 따라 프로젝트의 첫 번째 수준 내에서 클래스/기타/DefaultApplicationModule

. 모두는 최근까지 잘 작동했습니다. 분명히 클래스 패스 문제일까요? 이클립스 메타 데이터 내에서 이것을 찾으려면 어떻게해야할까요?

더 자세히 :

콘솔 :

******************************************************************* 
*** WARNING: Apache MyFaces-2 is running in DEVELOPMENT mode. *** 
***           ^^^^^^^^^^^   *** 
*** Do NOT deploy to your live server(s) without changing this. *** 
*** See Application#getProjectStage() for more information.  *** 
******************************************************************* 

Feb 13, 2014 1:41:18 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Error listenerStart 
Feb 13, 2014 1:41:18 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/CRGen] startup failed due to previous errors 
Feb 13, 2014 1:41:18 PM org.apache.catalina.core.StandardContext listenerStop 
SEVERE: Exception sending context destroyed event to listener instance of class   za.co.huge.processor.CRToolContextListener 
java.lang.NoClassDefFoundError: com/tele/misc/DefaultApplicationModule 
    at za.co.huge.processor.ReportProcessor.<init>(ReportProcessor.java:30) 
    at za.co.huge.processor.ReportProcessor.getInstance(ReportProcessor.java:41) 
    at  za.co.huge.processor.CRToolContextListener.contextDestroyed(CRToolContextListener.java:22) 
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4927) 
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5573) 
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:1559) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:724) 

Feb 13, 2014 1:41:18 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
Feb 13, 2014 1:41:18 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
Feb 13, 2014 1:41:18 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 2547 ms 

내 서블릿 컨텍스트 리스너에서이 원래의 모든 :

<!-- CRTool Context listener starts report processing Engine --> 
<listener> 
    <listener-class>za.co.huge.processor.CRToolContextListener</listener-class> 
</listener> 

실패 어느 때 초기화를 종속 프로젝트의 Guice 모듈에 :

/* singleton design pattern - so only one service thread can be running */ 
private ReportProcessor(final long sleepTime){ 
    serviceThread = new ServiceThread(sleepTime); 
    thread = new Thread(serviceThread); 
    thread.setPriority(Thread.MIN_PRIORITY); 
    final Injector injector = Guice.createInjector(new  DefaultApplicationModule()); 
//  final Injector injector = Guice.createInjector(new CommissionsModule(), new  DefaultApplicationModule()); 
//  ci = injector.getInstance(CommissionsImpl.class); 
    } 
+0

Eclipse에서 Tomcat의 'Clean'옵션을 사용해 보셨습니까? Tomcat을 다시 시작해 보셨습니까? – mthmulders

+0

예! 여러 번 청소하고 다시 실행하십시오. – Atheba

+0

질문에 전체 스택 트레이스를 추가 할 수 있습니까? 내 마음에는 몇 가지 근본 원인이 있지만 문제를 일으키는 원인을 추측하는 것은 어렵습니다. – mthmulders

답변

0

코드를 컴파일하고 나면 프로그램의 각 클래스에 대해 .class 개의 파일로 끝납니다. 이 2 진 파일은 Java가 프로그램을 실행하기 위해 해석하는 바이트 코드입니다. NoClassDefFoundError은 클래스를 동적으로로드하는 클래스 로더가 사용하려는 클래스에 대해 .class 파일을 찾을 수 없음을 나타냅니다. 코드를 실행할 때 classpath 옵션을 설정하지 않았 음을 나타냅니다. 이 링크는 실행할 때 클래스 경로를 설정하는 방법을 설명합니다. http://en.wikipedia.org/wiki/Classpath_%28Java%29

+0

다른 사람 의존성이있는 응용 프로그램은 정상적으로 실행됩니다! 이 웹 앱은 작동을 멈췄습니다. 작업 공간의 일부를 정리하고 GIT에서 프로젝트를 다시 다운로드했을 때 일어 났을 수도 있습니다. – Atheba

+0

그래야 도움이 될 수 있습니다. https://tomcat.apache.org/tomcat-7.0-doc/deployer-howto.html – Programmer

+0

Tomcat이 잘 작동합니다 ... 종속성이없는 새 웹 앱을 만들 수 있습니다. Eclipse 내에서 실행됩니다. 나는 .war을 빌드하고 Tomcat에도이를 전개 할 수있다. 특히 이클립스와이 문제를 일으키는 것으로 보이는 종속성의 연결입니다. – Atheba

관련 문제