任何帮助都将不胜感激。我正在运行一个web应用程序,它依赖于我工作空间中的另外两个项目。这两个项目进一步依赖于我工作区中的其他3个项目。工作区中的任何项目都没有错误。在Tomcat中运行web应用程序会产生以下错误:
java.lang.NoClassDefFoundError: com/tele/misc/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>在依赖项目的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);
}发布于 2014-02-13 16:51:06
编译代码后,程序中每个类的.class文件就结束了。这些二进制文件是Java解释以执行程序的字节码。NoClassDefFoundError指示负责动态加载类的类加载器找不到您试图使用的类的.class文件。它可能表明您在执行代码时没有设置类路径选项。此链接说明如何在执行时设置类路径。http://en.wikipedia.org/wiki/Classpath_%28Java%29
https://stackoverflow.com/questions/21749088
复制相似问题