ServletDispatcher ne peut pas être converti en une exception Javax.servlet.Servlet dans mon projet Spring
Lors du démarrage du serveur tomcat, je suis une exception
SEVERE: Servlet /MavenWeb threw load() exception
java.lang.ClassCastException: org.springframework.web.servlet.DispatcherServlet
cannot be cast to javax.servlet.Servlet
Je suis en utilisant spring3 mais il n'y a jar spring2-5-6 dans mon dossier lib, je l'ai retiré pom.xml mais il apparaît toujours dans le dossier lib - si je ne suis pas sûr si c'est un problème. Je suis à l'aide de l'IDE Eclipse. Merci!!
<dependencies>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Draft-6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.5.6-Final</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.1.2.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.1.2.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.1.2.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.1.2.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.2.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1-b01</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webflow</artifactId>
<version>1.0.6</version>
<scope>compile</scope>
</dependency>
</dependencies>
source d'informationauteur Manth
Vous devez vous connecter pour publier un commentaire.
Vous ne devriez pas être à l'aide de plusieurs versions de Printemps Pots dans un projet, mais ce n'est pas la question.
Le problème est probablement causé par la servlet API classes chargées par deux de la classe des chargeurs. Vous avez probablement
servlet*.jar
ou une autre spécifique au conteneur des Pots dans votre GUERRE. Supprimer en définissant leurs<scope>
àprovided
danspom.xml
.Dans mon cas, il n'était pas un problème avec les bibliothèques. J'ai été la modification d'une Norme Servlet pour être mis en œuvre avec le Printemps, j'ai donc suivi ces instructionsque je paraphrase ici au cas où la page descend plus tard:
Mettre en œuvre
org.springframework.web.HttpRequestHandler
au lieu de l'étendre javax.Servletpublic class MyServlet implements HttpRequestHandler {
Créé le haricot applicationContext.xml (je l'ai fait dans le dispatcher-servlet.xml)
<bean id="MyServlet" class="com.package.to.MyServlet"/>
Spécifier la servlet dans le Web.xmlla modification de la vieille classe (com.package..MyServlet) au Printemps HttpRequestHandlerServlet.
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
J'ai dû faire une étape supplémentaire pour éviter un FileNotFoundException sur applicationContext.xml procédant de la manière suivante dans le web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>