找不到类:org.springframework.web.servlet.DispatcherServlet

时间:2013-10-10 06:41:29

标签: eclipse spring hibernate spring-mvc

在spring-hibernate项目中,我在eclipse中添加了一些User创建的库中所需的所有jar。但它仍然是例外, ServletDispatcher不可用。下面显示了所有包含的jar文件,只是帮助我离开了哪一个。

org.springframework.aop-3.0.4.RELEASE.jar
org.springframework.asm-3.0.4.RELEASE.jar
org.springframework.aspects-3.0.4.RELEASE.jar
org.springframework.beans-3.0.4.RELEASE.jar
org.springframework.context.support-3.0.4.RELEASE.jar
org.springframework.context-3.0.4.RELEASE.jar
org.springframework.core-3.0.4.RELEASE.jar
org.springframework.expression-3.0.4.RELEASE.jar
org.springframework.instrument.tomcat-3.0.4.RELEASE.jar
org.springframework.instrument-3.0.4.RELEASE.jar
org.springframework.jdbc-3.0.4.RELEASE.jar
org.springframework.jms-3.0.4.RELEASE.jar
org.springframework.orm-3.0.4.RELEASE.jar
org.springframework.oxm-3.0.4.RELEASE.jar
org.springframework.test-3.0.4.RELEASE.jar
org.springframework.transaction-3.0.4.RELEASE.jar
org.springframework.web.portlet-3.0.4.RELEASE.jar
org.springframework.web.servlet-3.0.4.RELEASE.jar
org.springframework.web.struts-3.0.4.RELEASE.jar
org.springframework.web-3.0.4.RELEASE.jar
hibernate3.jar
jstl.jar
standard.jar
org.springframework.webflow-2.2.1.RELEASE.jar

StackTrace是:

SEVERE: Servlet /PersonLoanManegment threw load() exception
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)              
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:124)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1136)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

6 个答案:

答案 0 :(得分:5)

我发现添加到POM:

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>${spring-framework.version}</version>
</dependency>

添加了需要的文件,IntelliJ能够解析DispatcherServlet。

答案 1 :(得分:2)

你的类路径中需要jar spring-web-3.0.4.RELEASE.jar。有了Maven:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>3.0.4.RELEASE</version>
</dependency>

此致

答案 2 :(得分:1)

你的类路径中需要jar org.springframework.web.servlet-3.0.4.RELEASE.jar。其中包含org.springframework.web.servlet.DispatcherServlet

答案 3 :(得分:1)

也许,这不是因为你丢失了依赖配置。你应该检查罐子是否真的可用,请按照:

打包你的项目,然后解压缩它,检查:/ WEB-INF / lib,看看org.springframework.web.servlet-3.0.4.RELEASE.jar是否存在!如果是的话,解压缩这个罐子,看它是否腐败!它不存在或损坏,检查您的maven存储库,您可以从您的maven存储库中删除此工件,并重建,让maven重新下载它。祝你好运!

答案 4 :(得分:0)

这是一个非常老的问题

根据一篇文章,我读到“大多数可能与必需的Spring MVC相关的jar文件不会在tomcat启动时加载和部署。但是请注意:这些文件在您的类路径中,因此在开发过程中Eclipse IDE不会出现任何错误时间。仅在运行时发生。”

这是我的解决方法:

  1. 右键单击项目。
  2. 选择属性。
  3. 单击部署程序集。
  4. 单击添加。
  5. 选择“ Java构建路径条目”
  6. 选择Maven依赖关系并完成。

清理项目,一切顺利。

答案 5 :(得分:-1)

每当遇到ClassNotFound异常时,尝试使用jarFinder

等各种在线工具找到丢失的jar