簡體   English   中英

嵌套異常錯誤 java.lang.NoClassDefFoundError

[英]nested exception error java.lang.NoClassDefFoundError

我用 Eclipse 在 Java 中編程,我有以下錯誤:

GRAVE: Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [com.sis.artemis.dashboard.statistics.sdis.personnels.service.SdisPersonnelsStatisticsServiceImpl] for bean with name 'sdisPersonnelsStatisticsService' defined in class path resource [resources/sdis-services.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: com/sis/artemis/dashboard/statistics/sdis/personnels/service/SdisPersonnelsStatisticsService
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1238)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:576)
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1304)
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:870)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:556)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
    at org.apache.catalina.core.StandardService.start(StandardService.java:519)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.NoClassDefFoundError: com/sis/artemis/dashboard/statistics/sdis/personnels/service/SdisPersonnelsStatisticsService
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2722)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1124)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1612)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:257)
    at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1256)
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1227)
    ... 24 more
20 juil. 2011 11:32:36 org.apache.catalina.core.StandardContext start
GRAVE: Error listenerStart
20 juil. 2011 11:32:36 org.apache.catalina.core.StandardContext start
GRAVE: Erreur de démarrage du contexte [/artemis-dashboard-spring] suite aux erreurs précédentes

但是 Class 定義明確,今天早上我沒有這個問題,我沒有改變任何東西。

有人有解決我問題的想法嗎?

首先要認識到此錯誤是runtime問題,通常是類路徑問題。 確保它抱怨的 class 在您的類路徑中。 如果有問題的 class 位於另一個 jar 中,請確保 jar 在您的類路徑中。 如果 class 位於項目的其他位置,請確保如果您從 eclipse 運行它,則 class 位於源文件夾或類似文件夾中。

此錯誤意味着 class 在編譯時存在,但現在正在運行您的代碼的 JVM 無法再找到有問題的 class。

您似乎正在將 tomcat 用於 web 應用程序服務器? 已知 Tomcat 存在 class 加載問題。 每當您重新啟動 tomcat 時,還要記住清空其工作和臨時文件夾(直接位於 tomcat 主文件夾中)。

我不確定您使用的是什么版本的 Tomcat,但請查看 Tomcat 中 class 加載程序的文檔;

Tomcat 版本 6.0 中 class 裝載機的 Doco 您說您的 class 位於“源文件夾”中。 也許嘗試確保已編譯的.class 文件位於 WEB-INF/classes 中

看起來它也找不到SdisPersonnelsStatisticsService ,它很可能是 SdisPersonnelsStatisticsServiceImpl 的接口class 確保兩個(.class 文件,而不是.java 文件)都在您的類路徑(或 WEB-INF/類)中

我已經像這樣解決了我的問題:我刪除了我的 tomcat 服務器並重新安裝它,現在可以了,我不知道為什么......

感謝大家的幫助,並為我抽出時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM