注:仅供参考!个人运行项目时遇到的问题和解决方案,希望可以给大家带来一丢思路,并非普适性。
问题描述: 启动tomcat时报错,项目未运行成功 具体报错: 十月 18, 2021 9:10:11 下午 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring root WebApplicationContext 十月 18, 2021 9:10:49 下午 org.apache.catalina.core.StandardContext listenerStart 严重: Exception sending context initialized event to listener instance of class org.apache.myfaces.webapp.StartupServletContextListener java.lang.NoClassDefFoundError: org/apache/commons/el/Logger … Caused by: java.lang.ClassNotFoundException: org.apache.commons.el.Logger
问题分析: 观察给出的原因,定位到commons.el这个jar包,发现我这个项目的commons.el.jar在项目名/lib,而不是WebRoot/WEB-INF/lib下。
好像说: 编译器会自动去寻找他所需要的jar包,但是服务器(tomcat)就不会,所用jar包必须加入WEB-INF/lib才有用。 在myeclipse中是没有这个问题的; 好像eclipse Java EE,程序在运行的时候自动查找WEB-INF/lib下的jar包文件,是不会查找其他文件夹的,受约束的。
解决方案: 项目java build时(项目右键——properties),可以直接添加项目名/lib下jar包。!!但需要将项目名/lib的commons.el.jar复制粘贴到WebRoot/WEB-INF/lib下 (但也有人不需要,也可以运行成功,可能装的是MyEclipse,也可能跟系统和配置有关,仅仅给大家提供一点解决问题的思路)
|