在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)
答案 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不会出现任何错误时间。仅在运行时发生。”
这是我的解决方法:
清理项目,一切顺利。
答案 5 :(得分:-1)
每当遇到ClassNotFound异常时,尝试使用jarFinder
等各种在线工具找到丢失的jar