Ich verwende Spring 3.1.0.RELEASE und mein Servlet-Container ist Tomcat 7 und meine IDE ist Eclipse Indigo und das JAR spring-webmvc-3.1.0.RELEASE.jar, das das DispatcherServlet enthält, ist im lib-Ordner vorhanden, und doch wann Beim Ausführen der Anwendung erhalte ich die Ausnahme:
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:126)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1043)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Bitte geben Sie an, warum ich diese Ausnahme erhalte und wie Sie sie beheben können.
BEARBEITEN: Folgendes sind meine Konfigurationsdateien:
1- .springBeans:
<?xml version="1.0" encoding="UTF-8"?>
<beansProjectDescription>
<version>1</version>
<pluginVersion><![CDATA[2.9.0.201203011806-RELEASE]]></pluginVersion>
<configSuffixes>
<configSuffix><![CDATA[xml]]></configSuffix>
</configSuffixes>
<enableImports><![CDATA[false]]></enableImports>
<configs>
<config>src/main/webapp/WEB-INF/checkout-servlet.xml</config>
</configs>
<configSets>
</configSets>
</beansProjectDescription>
2- web.xml:
<web-app>
<display-name>Checkout</display-name>
<servlet>
<servlet-name>checkout</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>checkout</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
</web-app>
3- checkout-servlet.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<context:component-scan base-package="com.myapp"/>
<bean id="myService" class="com.myapp.MyService"/>
</beans>
Auch wenn ich versuche, auf eine Seite in der Anwendung zuzugreifen, erhalte ich die Ausnahme:
HTTP Status 404 - Servlet checkout is not available
type Status report
message Servlet checkout is not available
description The requested resource (Servlet checkout is not available) is not available.
Apache Tomcat/7.0.22
spring
maven
spring-mvc
maven-2
Mahmoud Saleh
quelle
quelle
Antworten:
Sie müssen die "Maven-Abhängigkeit" in der Bereitstellungsassembly hinzufügen
Neu erstellen und erneut bereitstellen
Hinweis: Dies gilt auch für Nicht-Maven- Projekte.
quelle
Zwei mögliche Antworten:
1- Sie haben keine Spring-Beans und Spring-Context-Gläser in Ihre Bibliothek aufgenommen. Wenn Sie Maven verwenden (was sehr hilfreich ist), reichen diese beiden Zeilen aus
2- Die erforderlichen Jars befinden sich in Ihrem Klassenpfad, werden jedoch nicht auf Tomcat bereitgestellt.
quelle
spring-webmvc
zu meinempom.xml
Willen lösen das Problem. Vielen Dank.Hallo Leute, ich hatte das gleiche Problem mit Idea Intellij und Spring 4. Ich habe das Problem behoben und wollte die Antwort mit Ihnen teilen.
Ich benutze Tomcat 7 / Idea Intelligij 13 / Spring 4
pom.xml Abhängigkeiten
In der Idee Intellij müssen Sie zu Datei -> Projekteinstellungen -> Artefakte gehen. Dann
sauber -> Projekt neu erstellen -> Artefakt erstellen und alles wird in Ordnung sein ...
quelle
Dies löst das Problem für mich. Es ist einfach und ziemlich einfach zu erklären.
Schritt 1
Schritt 2
Schritt 3
Schritt 4
Schritt 5
classnotfoundexception
quelle
Ich fand, dass in der Bereitstellungsassembly der Eintrag war:
Ich habe es entfernt und den
maven dependencies
Eintrag hinzugefügt , und es funktioniert jetzt gut.quelle
Wenn all diese Ratschläge nicht funktionieren, sollten Sie Ihren Server neu erstellen (Tomcat oder ähnliches). Das hat mein Problem gelöst.
quelle
Fügen Sie die folgende Abhängigkeit in Ihre pom.xml ein
quelle
Ich stand vor dem gleichen Problem. Als ich in meinem lokalen Ordner den Ordner maven repository .m2 (.... m2 \ repository \ org \ springframework \ spring-webmvc) sah, fand ich zwei 3.2.0.RELEASE-Ordner. Also habe ich einen entfernt. Dann ging ich zum Projekt, Rechtsklick-> Eigenschaften-> Bereitstellungsaufbau-> Maven-Abhängigkeiten hinzufügen. Bereinigen Sie den Build und starten Sie den Server neu. Dann wurde das DispatcherServlet geladen.
quelle
In meinem Fall tritt dieses Problem auf, nachdem ich das Update-Projektdienstprogramm des Maven verwendet habe. Ich habe alle von Ihnen vorgeschlagenen Problemumgehungen ausprobiert, aber nichts schien zu funktionieren. Am Ende bestand die Lösung einfach darin, das Projekt vom Server zu entfernen, um sicherzustellen, dass es sauber ist, und es erneut hinzuzufügen. Dann funktioniert es, ich hoffe, diese Lösung könnte jedem von Ihnen helfen.
quelle
Sie können den GlassFish-Server verwenden und der Fehler wird behoben. Ich habe es mit tomcat7 und tomcat8 versucht, aber dieser Fehler trat ständig auf, wurde aber mit GlassFish behoben. Ich denke, es ist ein Problem mit dem Server.
Dies sind die Ergebnisse mit tomcat7:
Hier sind die Ergebnisse mit GlassFish:
quelle
Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie Eigenschaften. Klicken Sie auf Deployment Assembly. Klicken Sie auf Hinzufügen. Klicken Sie auf "Java Build Path Entries". Wählen Sie Maven Dependencies aus. Klicken Sie auf Finish.
quelle
Es kann für jemanden nützlich sein, also werde ich es hier posten. Mir fehlte diese Abhängigkeit von meinem
pom.xml
quelle
quelle
Ich habe Folgendes gelöst:
Dadurch werden die Einstellungen für "Deployment Assembly" des Projekts korrigiert.
quelle
Verschieben Sie die JAR-Dateien von Ihrem Klassenpfad nach web-inf / lib und führen Sie einen neuen Tomcat-Server aus.
quelle
Ich habe eine einfache Lösung gefunden: Fügen Sie einfach Ihre Gläser in den Ordner WEB-INF -> lib ein.
quelle
Ich hatte das gleiche Problem in WebSphere, konnte aber keine Lösung finden, obwohl ich überprüft habe, dass die Spring-Abhängigkeiten vorhanden sind und es in Tomcat einwandfrei lief. Am Ende habe ich die Anwendung deinstalliert und immer noch den Fehler erhalten, sodass WebSphere an einer beschädigten Instanz hängen blieb.
Um das Problem zu beheben, musste ich die Anwendung neu installieren, stoppen, deinstallieren und dann neu installieren.
quelle
Für mich war es ein Fehler in der
pom.xml
- ich hatte<scope>provided<scope>
meine Abhängigkeiten festgelegt, und dies führte dazu, dass sie während dermvn package
Phase nicht kopiert wurden .Meine Symptome waren die vom OP gepostete Fehlermeldung und die Tatsache, dass die Gläser nach dem Ausführen des Pakets nicht im WEB-INF / lib-Pfad in der .war enthalten waren. Als ich das Zielfernrohr entfernte, erschienen die Gläser in der Ausgabe, und jetzt wird alles gut geladen.
quelle