Eclipse中Tomcat 9启动报GenesysLMSLogger类缺失问题咨询
问题核心原因
报错提示的类找不到是Eclipse WTP托管Tomcat的类加载机制导致的:你配置的项目类路径仅作用于项目编译阶段,不会自动同步到Tomcat的运行时类加载路径。从你的启动参数可以看到,Eclipse启动的Tomcat使用独立的catalina.base临时目录(tmp0),Web应用的类加载器默认只会读取部署后WEB-INF/lib下的JAR、Tomcat安装目录lib文件夹下的公共JAR,所以即便你本地有这个类,运行时也会加载失败。
可执行解决方案
- 检查项目部署装配配置
右键两个报错的Web项目(genesys-rules-authoring、genesys-rules-engine),依次选择【Properties】→【Deployment Assembly】,确认包含com.genesyslab.brs.common.log.GenesysLMSLogger的JAR包或依赖模块已在部署列表中,且部署路径为WEB-INF/lib。如果缺失点击【Add】补充对应依赖,保存后重新部署项目。 - 调整Tomcat启动类加载配置
双击Eclipse Servers视图中的Tomcat 9实例,打开配置页后点击【Open launch configuration】,切换到【Classpath】标签,将目标类所在的JAR包添加到【User Entries】分类下,保存配置后重启服务器。 - 公共依赖全局配置
如果该JAR是多个Web应用共用的公共依赖,可以直接将JAR包放入Tomcat安装目录C:\apache-tomcat-9.0.54\lib路径下,该路径下的JAR会被所有部署的Web应用共享加载。 - 清理部署缓存重试
右键Servers视图中的Tomcat实例,依次执行【Clean】、【Clean Tomcat Work Directory】操作,清空历史部署缓存后重新启动服务器。
如果以上操作都执行后仍然报错,可以排查项目web.xml中配置的监听器、过滤器是否有异常的类引用,或者是否存在同依赖不同版本的JAR包冲突问题。
内容的提问来源于stack exchange,提问作者Priya
相关产品推荐
相关产品推荐

