2014-02-13 245 views
0

任何帮助将不胜感激。我正在运行一个Web应用程序,这取决于我的工作空间中的另外两个项目。这两个项目进一步依赖于我工作区中的其他3个项目。工作空间内的任何项目都没有错误。运行在Tomcat Web应用程序产生以下错误:Eclipse - Web应用程序Tomcat部署borked

java.lang.NoClassDefFoundError:COM /远程/其它/ DefaultApplicationModule

这取决于项目的第一级中的一类。直到最近,所有的工作都很好。这显然是某种类路径问题?有关如何在Eclipse元数据中找到这些内容并解决此问题的任何建议?

更多细节:

控制台:

******************************************************************* 
*** 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 

这一切都源于我的servlet上下文监听器:

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

哪些失败时初始化从依赖项目吉斯模块:

/* 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文件。这些二进制文件是Java解释来执行程序的字节码。 NoClassDefFoundError指示负责动态加载类的类加载程序找不到要尝试使用的类的.class文件。这可能表示在执行代码时没有设置类路径选项。此链接说明如何在执行时设置类路径。 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工作正常...我可以创建一个新的Web应用程序没有依赖和从Eclipse内运行。我可以构建.war并在Tomcat上部署它。它特别是Eclipse以及似乎导致问题的依赖链接。 – Atheba

相关问题