在学习spring的时候,使用的是eclipse+maven+springmvc+tomcat来测试的,但是在部署到tomcat上的时候报错:
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1722)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1573)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:506)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:488)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:115)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1148)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5267)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5557)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
其实在eclipse中配置server的时候,eclipse会把web项目自动转发到工作空间:.metadata\.plugins\org.eclipse.wst.server.core\的这个目录中。
配置到tomcat的工作目录下的方法:
在Tomcat v7.0... 上右击选择 open,如下图所示
在 Server Locations中选择第二项,就可以将项目部署到tomcat工作目录下。
错误的解决办法:
发生该错误的原因是在部署tomcat时,maven所加载的依赖包没有拷贝到tomcat所对应的工程目录里,可以在eclipse中配置一下:
工程上右击 -> Properties -> Deployment Assembly:
之后选择 Add -> Java Build Path Entries->Maven Denpendencies->OK。
之后在eclipse下可以正常启动tomcat。