问题 – java.lang.ClassNotFoundException:org.springframework.web.servlet.DispatcherServlet
我试图在Spring示例中发布简单的spring应用程序并运行。
我正进入(状态
SEVERE: Servlet /MavenWeb threw load() exception java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1073) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1021) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957) at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284) at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)
我有spring.jar,spring-webmvc.jar和所有其他必需的jar子,所以我不知道为什么会出现这个错误。
这是我的web.xml文件
Spring3-Hibernate list.html spring org.springframework.web.servlet.DispatcherServlet 1 spring /
和我的Spring-servlet.xml文件
classpath:hibernate.cfg.xml org.hibernate.cfg.AnnotationConfiguration ${jdbc.dialect} true
我不确定这里出了什么问题,并希望得到任何帮助或建议。 我在SO上经历过泉源论坛和其他类似的问题但仍然没有用。 有什么可能是路障的建议吗?
更新:
DispatcherServlet
错误消失但现在又出现了另一个错误
堆栈跟踪:
SEVERE: StandardWrapper.Throwable java.lang.NoSuchFieldError: APPLICATION_CONTEXT_ID_PREFIX at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:430) at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:458) at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:339) at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:306) at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:127) at javax.servlet.GenericServlet.init(GenericServlet.java:160) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1201) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1114) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1021) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957) at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284) at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Jul 18, 2011 11:25:09 AM org.apache.catalina.core.StandardContext loadOnStartup SEVERE: Servlet /MavenWeb threw load() exception java.lang.NoSuchFieldError: APPLICATION_CONTEXT_ID_PREFIX at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:430) at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:458) at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:339) at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:306) at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:127) at javax.servlet.GenericServlet.init(GenericServlet.java:160) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1201) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1114) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1021) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957) at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284) at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)
更新部分的类似问题
跟进关于@Autowiring没有工作问题的问题
CNFexception应该让你觉得“我错过了一个JAR”。
在这种情况下,您需要名为org.springframework.web.servlet-3.0.5.RELEASE.jar
的Spring 3.0.5 JAR。 它包含DispatcherServlet
。
如果你认为它们在你的CLASSPATH中,也许你不明白如何正确设置它。
您不应该有CLASSPATH环境变量。
Spring JAR及其所有依赖项应该在您的WEB-INF / lib中。
如果您正在使用Maven,则需要以下依赖项:
org.springframework spring-webmvc 3.0.5.RELEASE
最初我遇到了同样的错误,即使我通过添加外部jar(在Eclipse Indigo中)配置了构建路径。 后来我将jar文件直接复制到web-inf / lib ,问题就消失了。
我遇到了类似的问题……我认为spring-webmvc是一个运行时依赖项。 可以编译项目,但是您获得了运行时exception。
您可以将它作为运行时依赖项添加到您的pom中,我认为它应该工作…(作为编译时依赖它工作,不确定是否要使用“编译”范围添加依赖项)
- CodenameOne在构建后停止工作
- ClassNotFoundException:org.springframework.jdbc.datasource.DriverManagerDataSource
- 如何捕获java.lang.NoClassDefFoundError?
- 使用Guice 2.0的ClassNotFoundException
- 用于eclipse的tomcat中的servlet的java.lang.ClassNotFoundException
- ClassNotFoundException:com.mysql.jdbc.Driver
- Java Web Start – 运行时ClassNotFoundException
- ProGuard打破了JavaFX应用程序
- ClassNotFoundException启动Tomcat时的DispatcherServlet(Maven依赖项未复制到wtpwebapps)