2014-01-13 2 views
0

У меня есть maven web в eclipse и при компиляции, я получаю какое-то исключение: java.lang.ClassCastException: org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet Я не могу понять исключение, и я не знаю, что происходит не так.Исключение при литье Диспетчерский сервлет

pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>saumyaraj</groupId> 
    <artifactId>wishtree</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <dependencies> 
    <dependency> 
    <groupId>javax.persistence</groupId> 
    <artifactId>persistence-api</artifactId> 
    <version>1.0.2</version> 
    </dependency> 
    <dependency> 
    <groupId>javax</groupId> 
    <artifactId>javaee-api</artifactId> 
    <version>7.0</version> 
     <scope>provided</scope> 
</dependency>  
     <dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId> 
    <version>4.0.0.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-beans</artifactId> 
    <version>4.0.0.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
    <version>4.2.8.Final</version> 
</dependency>   
    <dependency> 
    <groupId>javax.transaction</groupId> 
    <artifactId>javax.transaction-api</artifactId> 
    <version>1.2</version> 
</dependency> 
    <dependency> 
    <groupId>maven-taglib</groupId> 
    <artifactId>maven-taglib-plugin</artifactId> 
    <version>1.4.2</version> 
</dependency> 
</dependencies> 
</project> 

Мой web.xml: -

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" version="2.5"> 
    <display-name>Spring3-Hibernate</display-name> 
    <!-- <welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
    </welcome-file-list> --> 
    <servlet> 
     <servlet-name>spring</servlet-name> 
     <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>spring</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
</web-app> 

Ошибка Stack: -

SEVERE: Servlet /wishtree threw load() exception 
java.lang.ClassCastException: org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1116) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4350) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4659) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445) 
    at org.apache.catalina.startup.Embedded.start(Embedded.java:825) 
    at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558) 
    at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:158) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
    at org.codehaus.classworlds.Launcher.main(Launcher.java:46) 

Пожалуйста, помогите.

+0

похоже, что это не вопрос вашего 'pom.xml', но что в вашем' web.xml' – Rugal

+0

Может быть, вы бросили org.springframework.web.servlet.DispatcherServlet в javax.servlet.Servlet в вашем коде ? org.springframework.web.servlet.DispatcherServlet расширяет javax.servlet.http.HttpServlet. –

+0

@Rugal Я отредактировал вопрос с web.xml – Saumyaraj

ответ

0

Предполагая, что вы используете mojo-pugin версии 1.1, как найдено here, то ваш Tomcat Servlet контейнер версия 6.0.29 и имеет более старую версию servlet-api (Java EE 6). Ваш Spring version 4 DispatcherServlet скомпилирован с новой версией servlet-api (Java EE 7).

Вам необходимо либо использовать старую версию Spring или более новую версию харизмы (я не мог найти.)

В качестве альтернативы, вы можете получить проект Mojo и перекомпилировать его с более новой версией библиотек org.apache.tomcat.

Смежные вопросы