经典错误“Error configuring application listener of class org.springframework.web.contex”的终极分析

来源:互联网 发布:java的对称杨辉三角 编辑:程序博客网 时间:2024/04/29 22:07

        做过SSH框架开发的同学们,几乎都会遇到一个经典的报错:启动tomcat,报错“Error configuringapplication listener of class org.springframework.web.contex”,对于刚刚接触SSH的同学来说,这个错误非常烦人,因为有时候不小心误打误撞把这个错误给处理了,但是不知道根本原因,有时候不小心再一次遇到,却怎么弄也弄不好,那么今天我就来彻底地分析这个病因并解决它。


        出现这个错误的根本原因是因为tomcat服务器安装目录下部署的工程里\WEB-INF\lib目录下缺少spring weblibrary库,如果直接将相应的.jar组件复制到\WEB-INF\lib下是可以解决这个问题的。


        既然这么简单,但是为什么很多人会觉得头疼呢,因为我们在开发的过程中都会使用相关开发工具,很少手动直接复制相关的库文件到tomcat部署下的工程里面,尤其是使用myeclipse和eclipse的同学,因为IDE提供了很方便的功能,部署时会自动会复制相关文件到tomcat下。


        这里以myeclipse为例,通常出现这个错误,是因为项目工程添加了spring框架,而在添加spring框架之前,已经部署过项目,添加了spring框架后,我们通常的做法是,在Servers窗口下右键运行tomcat服务器,这时候相关的库文件并未被复制到服务器的\WEB-INF\lib目录下,这时后就会报此错误。


        当我们为此错误苦恼时,通常会有两种情况误打误撞解决了此错误。

        第一种,心烦之下在Servers窗口移除这个项目的部署,再重新部署,惊喜的发现,此问题解决了,可以运行这个web工程了。

        第二种,在Package Explorer窗口中右键工程,在弹出的菜单中选择Run As,发现不报错误了。


        因为是不经意地解决这个错误,很多人忽视了细节,很多人会觉得在Servers窗口下右键运行tomcat服务器与运行“Run As”这两个动作的功能是一样的,其实是不一样的。在添加了SSH等框架后,右键运行tomcat服务器并不会自动将相关的库文件复制到tomcat服务器下,而使用“Run As”却可以自动将相关的库文件复制到tomcat服务器下。


        有很多人因为右键运行tomcat服务器后,一直报错,还将tomcat卸载重新安装,或者在myeclipse里将此工程移除,然后在导入,固然是解决了这个问题,但是却麻烦了很多。


        有人会问,为什么我使用“Run As”后,还是会报此错误,嘿嘿,其实这个错误一定不是你当前的工程引起的,不信仔细查看控制台下的错误路径,一定是tomcat下部署了好几个工程,由其它的工程引起的错误。如果删除tomcat安装目下的其他工程,一定不会再报此错误。或者,不删除其它工程,“Run As”后,在浏览器中输入要访问的页面,结果也能够正常访问。
0 0
原创粉丝点击