首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在我的spring项目中,无法将ServletDispatcher强制转换为Javax.servlet.Servlet异常

在我的spring项目中,无法将ServletDispatcher强制转换为Javax.servlet.Servlet异常
EN

Stack Overflow用户
提问于 2012-07-29 03:38:05
回答 2查看 36.4K关注 0票数 15

启动tomcat服务器时,我遇到一个异常

代码语言:javascript
复制
SEVERE: Servlet /MavenWeb threw load() exception
java.lang.ClassCastException: org.springframework.web.servlet.DispatcherServlet
cannot be cast to javax.servlet.Servlet

我正在使用spring3,但在我的库文件夹中有jar Sprring2-5-6,我从pom.xml中删除了它,但仍然出现在库文件夹中-尽管我不确定这是否是一个问题。我使用的是Eclipse IDE。谢谢!!

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-29 03:45:53

您不应该在一个项目中使用多个版本的Spring JARs,但这不是问题所在。

这个问题很可能是由两个不同的类加载器加载的servlet API类引起的。在您的WAR中可能有servlet*.jar或其他特定于容器的WAR。通过在pom.xml中将它们的<scope>设置为provided来删除它们。

票数 29
EN

Stack Overflow用户

发布于 2013-04-09 05:14:55

在我的例子中,这不是库的问题。我将一个标准Servlet更改为使用Spring实现,所以我遵循了these instructions,我在这里解释一下,以防页面稍后崩溃:

  1. 实现org.springframework.web.HttpRequestHandler而不是扩展javax.Servlet

在applicationContext.xml中调度bean (我在public class MyServlet implements HttpRequestHandler {

  • Created -servlet.xml中完成)

在servlet 中对servlet执行<bean id="MyServlet" class="com.package.to.MyServlet"/>

  • Specify操作,将旧类(com.package.to.MyServlet)更改为Web.xml

我不得不做一个额外的步骤来避免关于applicationContext.xml的FileNotFoundException,在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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11704069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档