6

在 spring-hibernate 项目中,我在 Eclipse 中添加了一些用户创建的库中所需的所有 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)
4

6 回答 6

7

我发现添加到 POM:

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

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

于 2015-01-09T17:28:01.913 回答
3

您的类路径中需要 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>

问候

于 2013-10-10T07:47:57.277 回答
2

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

于 2013-10-10T06:58:18.113 回答
1

也许,这不是因为您丢失了依赖项配置。您应该检查 jar 是否真的可用,请按照以下步骤操作:

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

于 2014-08-26T01:53:11.623 回答
1

这是一个非常古老的问题

根据一篇文章,我读到“很可能必要的 Spring MVC 相关 jar 文件没有在 tomcat 启动时加载和部署。但请注意:这些文件位于您的类路径中,因此在开发期间您不会在 Eclipse IDE 中遇到任何错误。发生仅在运行时。”

这就是我解决我的问题的方式:

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

清理项目,你就可以开始了。

于 2020-07-01T04:47:59.500 回答
-1

每当您遇到 ClassNotFound 异常时,请尝试使用各种在线工具(如jarFinder )查找丢失的 jar

于 2013-10-10T07:04:46.760 回答