问题 – 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中,我认为它应该工作…(作为编译时依赖它工作,不确定是否要使用“编译”范围添加依赖项)