【问题标题】:org.springframework.web.servlet.DispatcherServlet while trying to use Spring frameworkorg.springframework.web.servlet.DispatcherServlet 尝试使用 Spring 框架
【发布时间】:2014-09-10 06:01:35
【问题描述】:

我正在尝试按照本指南学习 Spring http://docs.spring.io/docs/Spring-MVC-step-by-step/part1.html 我正在使用 Eclipse 和 Tomcat。我尝试在 lib 文件夹和 java 构建路径(eclipse 的功能)中添加 Spring jar。 我尝试按照指南添加 spring.jar、spring-webmvc.jar 和 commons-logging.jar。我什至尝试添加 Spring 框架 3.1、3.2 和 4.1 中的所有 jar。但是当我启动 Tomcat 时总是会遇到同样的错误

java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5176)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5460)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

这是我的 web.xml

    <?xml version="1.0" encoding="UTF-8"?>

    <web-app version="2.4"
             xmlns="http://java.sun.com/xml/ns/j2ee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
             http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >

      <servlet>
        <servlet-name>springapp</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>

      <servlet-mapping>
        <servlet-name>springapp</servlet-name>
        <url-pattern>*.htm</url-pattern>
      </servlet-mapping>

      <welcome-file-list>
        <welcome-file>
          index.jsp
        </welcome-file>
      </welcome-file-list>

</web-app>

【问题讨论】:

  • 你得到哪个错误?
  • 发布错误日志的完整堆栈跟踪。
  • 是的,堆栈跟踪可以帮助人们帮助您。
  • 请确保tomcat具有org.springframework.web.servlet.jar jar的运行时依赖。否则这个问题也可能是由于jar不兼容或jar冲突

标签: java spring jsp servlets


【解决方案1】:

我也遇到了这个问题,请检查你的Spring-web Release版本,使用Spring-Web-3.0.6 release和spring-webmvc 3.0.0 release jar,希望能解决问题。

【讨论】:

  • 我使用的是 3.1.4 你认为问题出在版本上吗?
  • 可能是,你会在你的构建路径中找到“org.springframework.web.servlet.DispatcherServlet”类吗?
  • 并且不要使用不同版本的同一个jar,这也会导致异常,每种类型只使用一个版本。
【解决方案2】:

您错过了类路径中的org.springframework.web.servlet.jar。下载并将其添加到您的类路径中。

【讨论】:

  • 是不是在你的war中WEB-INF/lib目录下?
【解决方案3】:

请确保 springapp-servlet.xml 文件存在于 /WEB-INF/springapp-servlet.xml

同时检查是否所有的依赖 lib/buildpath 中的 spring-web jars。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 2013-10-09
    • 2012-08-16
    • 2012-08-07
    • 2020-10-23
    • 2021-01-11
    • 2014-10-14
    相关资源
    最近更新 更多