org.springframework.Bohnen.factory.CannotLoadBeanClassException: Cannot find class
Habe ich ersetzt j2ee.jar mit servle-api.com aus meiner tomcat 6.0-Installationsverzeichnis:
Und das ergibt die Fehler unten. Ich bin derzeit versuchen, herauszufinden, die Ursache. Was könnte das problem sein.
Ich habe die bean-Definition in einer Konfigurationsdatei: Sempedia-service.xml
wie folgt
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="sempediaSearchService"
class="com.service.SempediaSearchManager" />
</beans>
meine web.xml gibt die folgende Bohnen:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/Sempedia-service.xml,/WEB-INF/Sempedia-persistence.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Stack-Trace
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.service.SempediaSearchManager] for bean with name 'sempediaSearchService' defined in ServletContext resource [/WEB-INF/Sempedia-service.xml]; nested exception is java.lang.ClassNotFoundException: com.service.SempediaSearchManager
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1141)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:524)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1177)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:758)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:422)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.ClassNotFoundException: com.service.SempediaSearchManager
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:211)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:385)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1138)
... 24 more
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass es keine Klasse namens
com.service.SempediaSearchManager
auf Ihre webapp ist classpath. Die wahrscheinlichsten Ursachen sind:den voll qualifizierten Klassennamen falsch
/WEB-INF/Sempedia-service.xml
; D. H. der name der Klasse ist etwas anderes,sich die Klasse nicht in Ihre webapp ist
/WEB-INF/classes
Verzeichnis-Struktur oder eine JAR-Datei, in der/WEB-INF/lib
Verzeichnis.BEARBEITEN : Die einzige andere Sache, die ich mir vorstellen kann ist, dass die
ClassDefNotFoundException
kann tatsächlich ein Ergebnis einer früheren laden von Klassen /statische Initialisierung problem. Überprüfen Sie Ihre log-Dateien für die ersten Stapel-Ablaufverfolgung, und suchen Sie die verschachtelten Ausnahmen, d.h. die "durch" - Kette. [Wenn eine Klasse laden, schlägt fehl, und Sie oder Frühling nennenClass.forName()
wieder für einige Grund, dann ist Java nicht wirklich versuchen, laden ein zweites mal. Stattdessen erhalten Sie eineClassDefNotFoundException
stack-trace, das erklärt aber nicht die eigentliche Ursache des ursprünglichen Fehlers.]Wenn Sie noch ratlos sind, sollten Sie Eclipse aus dem Bild heraus. Erstellen der war-Datei in der form, dass Sie irgendwann noch bereitstellen, dann von der Befehlszeile aus:
manuell Herunterfahren des Tomcat
reinigen Sie Ihren Tomcat-webapp-Verzeichnis,
kopieren Sie die war-Datei in das webapp-Verzeichnis,
starten Sie Tomcat.
Wenn das nicht das problem lösen, direkt, Blick auf das bereitgestellte webapp-Verzeichnis des Tomcat zu überprüfen, ob die "fehlenden" Klasse ist an der richtigen Stelle.
tar tvf
auf die JAR-Datei, um zu überprüfen, dass die Klasse ist wirklich drin?jar tvf
...)Ich habe den gleichen Fehler und die Ursache war das Verzeichnis:
beschädigt wurde(Verzeichnis oder Datei nicht lesbar oder beschädigt)..
gelöst mit
Überprüfen Sie Ihre Abhängigkeiten.
Ich habe das gleiche problem. Ich habe meine /WEB-INF/classes basiert auf Stephen ' s Empfehlung:
Entdeckte ich, dass ich eine veraltete jar-Datei. Ersetzen Sie es mit der neuesten jar-Datei das Problem gelöst.
ich vor kurzem erlebt dieses Problem, wenn ich versuche zu bauen, und plötzlich wird der laptop-Batterie lief aufladen. Ich gerade entfernt alle Server aus eclipse und dann wiederherstellen. danach habe ich neu gebaut, die war-Datei und es hat funktioniert.
Gerade verlassen, dieses hier für zukünftige Besucher:
In meinem Fall das /WEB-INF/classes-Verzeichnis fehlte. Wenn Sie mit Eclipse, stellen Sie sicher, dass die .settings/org.eclipse.wst.common.Komponente korrekt ist (Deployment Assembly in den Projekt-Einstellungen).
In meinem Fall war es fehlende
Diese Datei ist auch eine häufige Quelle von Fehlern, die wie erwähnt von Anuj (fehlende Abhängigkeiten von anderen Projekten).
Sonst, hoffentlich die anderen Antworten (oder die "Probleme" tab) wird Ihnen helfen.
Ich habe vor ähnlichen problem
So
Ich nur tun
1.update Maven Project
2.installieren Sie maven.