Tout en démarrant le serveur tomcat, je reçois une exception
SEVERE: Servlet /MavenWeb threw load() exception java.lang.ClassCastException: org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet
J’utilise spring3 mais il y a jar spring2-5-6 dans mon dossier lib, je l’ai enlevé de pom.xml mais apparaît toujours dans le dossier lib – bien que je ne sois pas sûr que ce soit un problème. J’utilise Eclipse IDE. Merci!!
org.hibernate.javax.persistence hibernate-jpa-2.1-api 1.0.0.Draft-6 comstack org.hibernate hibernate-annotations 3.5.6-Final comstack org.springframework spring-beans 3.1.2.RELEASE comstack org.springframework spring-context 3.1.2.RELEASE comstack org.springframework spring-web 3.1.2.RELEASE comstack org.springframework spring-tx 3.1.2.RELEASE comstack org.springframework spring-webmvc 3.1.2.RELEASE comstack javax.servlet javax.servlet-api 3.1-b01 comstack org.springframework spring-webflow 1.0.6 comstack
Vous ne devriez pas utiliser plusieurs versions de fichiers JAR Spring dans un projet, mais ce n’est pas le problème.
Le problème est probablement dû aux classes API de servlet chargées par deux chargeurs de classes différents. Vous disposez probablement de servlet*.jar
ou d’autres fichiers JAR spécifiques à un conteneur dans votre fichier WAR. Supprimez-les en définissant leur
sur provided
dans pom.xml
.
Dans mon cas, ce n’était pas un problème avec les bibliothèques. Je changeais un Servlet Standard pour être implémenté avec Spring, alors j’ai suivi ces instructions , que je paraphrase ici juste au cas où la page s’effondrerait plus tard:
Implémentez org.springframework.web.HttpRequestHandler
au lieu d’étendre javax.Servlet
public class MyServlet implements HttpRequestHandler {
Création du bean dans le fichier applicationContext.xml (je l’ai créé dans le fichier dispatcher-servlet.xml)
Spécifiez le servlet dans le fichier Web.xml , en remplaçant l’ancienne classe ( com.package.to.MyServlet ) par Spring HttpRequestHandlerServlet .
J’ai dû effectuer une étape supplémentaire pour éviter une exception FileNotFoundException à propos de applicationContext.xml en procédant comme suit dans le fichier web.xml