ClassNotFoundException即使包含该类的jar在类路径中正确存在
我在eclipse中配置了一个新项目。我的项目有很多模块,其中一个名为eas.core。 我的eas.core模块的buildPath,我添加了一个jar文件common.jcr.jar,其中包含一个名为ContentRepositorySettings
的类,我将其用于我的代码中。但在运行时,我仍然得到一个ClassNotFoundException
如下图所示ClassNotFoundException即使包含该类的jar在类路径中正确存在
java.lang.NoClassDefFoundError: cm/bao/common/jcr/ContentRepositorySettings
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2944)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1208)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
at cm.bao.eas.core.ElectronicArchivingApplicationImpl.setupGlobalSettings(ElectronicArchivingApplicationImpl.java:33)
at cm.bao.eas.core.ElectronicArchivingApplicationImpl.start(ElectronicArchivingApplicationImpl.java:49)
at cm.bao.eas.ui.gwt.server.listner.ElectronicArchivingContextListner.contextInitialized(ElectronicArchivingContextListner.java:18)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
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.run(FutureTask.java:262)
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:745)
Caused by: java.lang.ClassNotFoundException: cm.bao.common.jcr.ContentRepositorySettings
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
如果你的项目是Faceted
,右键单击该项目,并去Properties
,并选择在左窗格中Deployment Assembly
。检查依赖项是否存在Build Path
条目或Archives
(罐子)。完成此操作后,您可以执行Project
>Clean
并重新启动服务器。
好吧,我按照你的指示,它正常工作。感谢James – blaiso
@blaiso,这很酷! –
当“在我的类路径中正确”时,实际**显示**类路径很重要。理想情况下复制并粘贴它,以保留错字。 –
是的,我会补充说它实际上并不是Eclipse中的类路径,而是WAR文件的内容。 –
看起来你有重复的副本 –