j'utilise spring 3.1.0.RELEASE, et mon conteneur de servlets est Tomcat 7 et mon IDE est Eclipse Indigo et le pot spring-webmvc -3.1.0.RELEASE.jar qui contient le DispatcherServlet Existe dans le dossier lib, et pourtant, lors de l'exécution de l'application, j'obtiens l'exception:
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)
s'il vous plaît expliquer pourquoi je reçois cette exception, et comment y remédier.
EDIT: voici mes fichiers de configuration:
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>
également en essayant d'accéder à n'importe quelle page de l'application, j'obtiens l'exception:
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
j'ai trouvé que dans deployment Assembly, il y avait l'entrée:
[persisted container] org.maven.ide.Eclipse.maven2_classpath_container
je l'ai enlevé et ajouté l'entrée maven dependencies
, et tout fonctionne bien maintenant.
Vous devez ajouter la "dépendance Maven" dans l'assemblage de déploiement.
Reconstruire et déployer à nouveau
Remarque: Ceci s'applique également à non maven project.
Deux réponses possibles:
1- Vous n'avez pas inclus les pots de haricots et de bocaux printaniers dans votre bibliothèque . Si vous utilisez maven (ce qui vous aidera beaucoup), ces deux lignes suffiront
<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- Les fichiers JAR nécessaires se trouvent dans votre chemin de classe mais ne sont pas déployés sur Tomcat.
Salut les gars, j'avais le même problème avec Idea Intellij et Spring 4 J'ai résolu le problème et je voulais partager la réponse avec vous.
J'utilise Tomcat 7/idea intellij 13/spring 4
dépendances pom.xml
<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>
Dans Idi Intellij, vous devez aller dans Fichier -> Paramètres du projet -> Artefacts. Ensuite
nettoyer -> reconstruire le projet -> construire l'artefact et tout ira bien ...
Cela résout le problème pour moi. C'est facile et joli simplement expliqué.
Étape 1
Étape 2
Étape 3
Étape 4
Étape 5
Si tous ces conseils ne fonctionnent pas, vous devez recréer votre serveur (Tomcat ou similaire). Cela a résolu mon problème.
Je faisais face au même problème. Quand j'ai vu le dossier .m2 du référentiel maven (.... m2\repository\org\springframework\spring-webmvc) dans mon répertoire local, j'ai trouvé deux dossiers 3.2.0.RELEASE. SO J'ai enlevé un . Ensuite, je suis allé au projet, cliquez avec le bouton droit de la souris -> propriétés -> déploiement essembly-> ajouter des dépendances maven . Nettoyez la construction, puis redémarrez le serveur. Ensuite, le DispatcherServlet a été chargé.
Inclure ci-dessous la dépendance dans votre pom.xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>{spring-version}</version>
</dependency>
Dans mon cas, je rencontre ce problème après avoir utilisé l'utilitaire de projet de mise à jour de maven. À la fin, la solution consistait simplement à supprimer le projet du serveur pour s'assurer qu'il était propre et à l'ajouter à nouveau. Ensuite, cela fonctionne, j'espère que cette solution pourra aider n'importe lequel d'entre vous.
cliquez avec le bouton droit de la souris sur votre projet et choisissez Propriétés . Cliquez sur Deployement Assembly . Cliquez sur add Cliquez sur "Entrées du chemin de construction Java" Sélectionnez Dépendances Maven " Cliquez sur Terminer.
J'ai trouvé une solution simple, Ajoutez simplement vos pots dans le dossier WEB-INF -> lib.
J'avais le même problème dans WebSphere, mais je n'ai pas trouvé de solution, même si j'ai vérifié que les dépendances de Spring étaient présentes et que cela fonctionnait parfaitement dans Tomcat. J'ai fini par désinstaller l'application et j'entendais toujours l'erreur. Je pense donc que WebSphere était bloqué sur une instance corrompue.
Pour résoudre le problème, je devais réinstaller l'application, l'arrêter, la désinstaller puis la réinstaller.
Cela peut être utile pour quelqu'un, je vais donc le poster ici . Il me manquait cette dépendance sur mon pom.xml
<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>
Pour moi, c'était une erreur dans le pom.xml
- Je mettrais <scope>provided<scope>
dans mes dépendances, ce qui les empêcherait d'être copiées pendant l'étape mvn package
.
Mes symptômes étaient le message d'erreur affiché par l'OP et le fait que les fichiers jar n'étaient pas inclus dans le chemin WEB-INF/lib dans le fichier .war après l'exécution du package. Quand j'ai enlevé la lunette, les bocaux sont apparus dans la sortie et tout se charge bien maintenant.
Déplacez les fichiers jar de votre chemin de classe vers web-inf/lib et exécutez un nouveau serveur Tomcat.
J'ai résolu en suivant ces étapes:
Cela corrige les paramètres "Assemblée de déploiement" du projet.