You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat 9.0.52部署WAR包报404,复制ROOT或Eclipse部署可正常运行

根因定位

从报错日志可以直接定位核心问题:test.connection.PooledDataSource类在静态初始化阶段加载配置文件时触发空指针,导致InvokerLoadListener监听器启动失败,Web上下文初始化终止,因此部署后访问返回HTTP Status 404 – Not Found。

不同部署方式表现差异的原因
  • 本地运行、Eclipse部署、直接复制ROOT文件夹到服务器这三种场景下,数据源所需的配置文件(通常为.properties格式的数据库配置文件)存在于类路径下,PooledDataSource可以正常加载配置,所以服务启动正常
  • WAR包部署失败是因为你的Ant打包脚本没有把配置文件正确打入WAR包的WEB-INF/classes目录下,类加载时找不到配置文件触发空指针
解决步骤
  • 检查项目的Ant打包脚本build.xml,确认是否将存放配置文件的目录(一般为src/resources或者独立的config目录)下的所有配置文件,拷贝到最终WAR包的WEB-INF/classes路径下
  • 手动校验WAR包完整性:解压生成的WAR文件,查看WEB-INF/classes目录下是否存在PooledDataSource要加载的配置文件,如果缺失补充打包规则即可
  • 可选优化:修改PooledDataSource的静态初始化代码,增加配置文件不存在的前置校验和明确的异常抛出逻辑,避免无意义的空指针,降低后续排查成本
  • 额外校验:确认远程Tomcat 9的conf/Catalina/localhost/ROOT.xml配置的docBase路径指向正确,没有读取到旧的部署缓存

内容的提问来源于stack exchange,提问作者ace23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 18:36:02