令新手头痛的java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet错误

       最近在学习springMVC,做helloworld实例的时候运行服务器一直报:java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet错误,我百度了该类位于spring-webmvc.jar包下,经过检查我确信我添加了该包进入项目。

百度了 大量的解决方案,最终我尝试了包所需要的jar包放到lib包下,然后refresh了一下项目,就可以成功通过编译,就解决了这个问题。

       思考:平时我都是build path   JAR包,这个操作以后,jar包都在(如图)下,我查看了下,Lib包下是空空如也的,但是为什么我把JAR包放在Lib包就可以了呢?

           原因:referenced librarier下面的包jar包是为了让你能通过编译,如果在该包下没有spring等jar包,项目中写到相应的函数时候,就不会提示和补全,自然也就不会通过编译了。而Lib包中的jar文件时被tomcat等服务器加载的,在运行动态网页项目的时候,服务器加载此包下的jar文件,所以会报java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet的根本原因是在Lib中找不到相应的JAR文件,加载不到文件。

           总结:在编辑项目的时候,eclipse加载referenced libraries下的JAR文件来通过编译

                     在运行服务器的时候,需要加载lib包下的JAR文件来运行项目,也就是说编译和运行时候为项目加载的JAR文件路径不一样。

猜你喜欢

转载自www.cnblogs.com/ToBeBetterPerson/p/9092062.html