ich verwende spring 3.1.0.RELEASE, und mein Servlet-Container ist Tomcat 7 und mein 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 dennoch wird beim Ausführen der Anwendung die Ausnahme angezeigt:
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 bekomme und wie Sie diese beheben können.
BEARBEITEN: Folgende 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 beim Versuch, 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
ich habe festgestellt, dass in der Bereitstellungsassembly der Eintrag vorhanden war:
[persisted container] org.maven.ide.Eclipse.maven2_classpath_container
ich habe es entfernt und den maven dependencies
-Eintrag hinzugefügt, und es funktioniert jetzt einwandfrei.
Sie müssen die "Maven-Abhängigkeit" in der Bereitstellungsbaugruppe hinzufügen
Erstellen Sie sie erneut und stellen Sie sie erneut bereit
Hinweis: Dies gilt auch für non maven project.
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
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
2- Die erforderlichen Gläser befinden sich in Ihrem Klassenpfad, werden jedoch nicht auf Tomcat bereitgestellt.
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 intellij 13/spring 4
pom.xml-Abhängigkeiten
<properties>
<spring.version>4.0.5.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
enter code here
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
In idea Intellij müssen Sie zu Datei -> Projekteinstellungen -> Artefakte gehen. Dann
sauber -> Projekt neu aufbauen -> Artefakt aufbauen und alles wird in Ordnung sein ...
Dies löst das Problem für mich. Es ist einfach und ziemlich einfach erklärt.
Schritt 1
Schritt 2
Schritt 3
Schritt 4
Schritt 5
Wenn all diese Ratschläge nicht funktionieren, sollten Sie Ihren Server (Tomcat oder ähnliches) neu erstellen. Das hat mein Problem gelöst.
Ich stand vor demselben Problem. Als ich in den Maven-Repository-Ordner .m2 (.... m2\repository\org\springframework\spring-webmvc) in meinem lokalen Ordner sah, fand ich zwei 3.2.0.RELEASE-Ordner. SO Ich entfernte eine Dann ging ich zu Projekt, Rechtsklick-> Eigenschaften-> Bereitstellung Essembly-> Maven-Abhängigkeiten hinzufügen . Clean Build und starten Sie den Server neu. Dann wurde das DispatcherServlet geladen.
Beziehen Sie die Abhängigkeit in Ihre pom.xml ein
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>{spring-version}</version>
</dependency>
In meinem Fall bekomme ich dieses Problem, nachdem ich das Hilfsprogramm für das Update-Projekt des maven verwendet habe. Am Ende bestand die Lösung darin, das Projekt einfach vom Server zu entfernen, um sicherzustellen, dass es sauber war, und es erneut hinzuzufügen. Dann funktioniert es, ich hoffe, dass diese Lösung jedem von Ihnen helfen kann.
klicken Sie mit der rechten Maustaste auf Ihr Projekt, und wählen Sie Eigenschaften aus. Klicken Sie auf Deployment Assembly. Klicken Sie auf Hinzufügen. Klicken Sie auf "Java Build Path Entries". Wählen Sie Maven-Abhängigkeiten aus. Klicken Sie auf Fertig stellen.
Ich habe eine einfache Lösung gefunden, Fügen Sie einfach Ihre Gläser in den Ordner WEB-INF -> lib ein.
Ich hatte das gleiche Problem in WebSphere, konnte aber keine Lösung finden, obwohl ich die Spring-Abhängigkeiten überprüft hatte und es in Tomcat einwandfrei lief. Am Ende habe ich die Anwendung deinstalliert und bekam immer noch den Fehler. Ich glaube, WebSphere hängt an einer beschädigten Instanz.
Um das Problem zu beheben, musste ich die Anwendung erneut installieren, stoppen, deinstallieren und erneut installieren.
Es kann für jemanden nützlich sein, also werde ich es hier posten ... Ich habe diese Abhängigkeit von meinem pom.xml
vermisst.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-Tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
Für mich war es ein Fehler im pom.xml
- Ich hatte <scope>provided<scope>
für meine Abhängigkeiten festgelegt, und dies führte dazu, dass sie in der mvn package
-Phase nicht kopiert wurden.
Meine Symptome waren die vom OP veröffentlichte Fehlermeldung und die Tatsache, dass die Jars nach der Ausführung des Pakets nicht im WEB-INF/lib-Pfad innerhalb des .war enthalten waren. Als ich den Bereich entfernte, erschienen die Gläser in der Ausgabe, und alle Ladevorgänge sind jetzt in Ordnung.
Verschieben Sie die JAR-Dateien von Ihrem Klassenpfad nach web-inf/lib und führen Sie einen neuen Tomcat-Server aus.
Ich habe es folgendermaßen gelöst:
Dies behebt die "Deployment Assembly" -Einstellungen des Projekts.