使用IntelliJ社区版Smart Tomcat插件启动Web应用时出现FileNotFoundException的原因

问题描述
我正在开发基于Spring的Java 8 Web应用,通过Maven将其打包为WAR文件,使用IntelliJ IDEA社区版,借助Smart Tomcat插件部署到Tomcat 9.0.97,构建过程采用两个Maven Profiles。
每次通过该插件的运行配置启动应用时,都会触发FileNotFoundException,但检查后发现所谓“缺失”的XML文件实际存在于<%Project_Root%>\target\webapp\WEB-INF\lib目录中,与IntelliJ提示的位置不符。
解决步骤
- 核对Smart Tomcat部署路径
打开Smart Tomcat运行配置,确认Deployment Directory设置为项目的target\webapp目录,避免插件指向临时目录导致路径错位。 - 清理并重新构建项目
执行Maven命令:mvn clean install -P [你的Profile1,Profile2],彻底清理旧构建产物后重新打包,消除缓存文件的干扰。 - 验证资源打包配置
检查该XML文件所在依赖的Maven配置,确保它被正确打包到Jar包内,且最终被复制到target\webapp\WEB-INF\lib目录中。 - 调整类加载配置
在Smart Tomcat配置里,勾选Use classpath of module并选择当前项目模块,或调整类加载顺序,让Tomcat优先加载WEB-INF/lib下的资源。 - 刷新IntelliJ索引
执行File -> Invalidate Caches... -> Invalidate and Restart,修复因索引过期导致的文件路径识别错误。
内容的提问来源于stack exchange,提问作者Saiprashanth
相关产品推荐
相关产品推荐

