OpenGrok搭配Tomcat9部署后访问/source路径报404错误如何解决
OpenGrok部署Tomcat 404问题解决方案
核心原因
最新版OpenGrok基于Jakarta EE 9+规范开发,而你使用的Tomcat 9.x仅支持Java EE规范,二者版本不兼容导致source.war无法被Tomcat正常识别解压,因此访问路径返回404。日志中的405错误是webapp未正常启动时,索引请求的PUT方法被默认拦截导致的衍生问题。
解决步骤
- 第一步:替换为兼容的Tomcat版本
卸载/停止当前运行的Tomcat 9,下载安装Tomcat 10.1.x及以上稳定版本,配置好JDK 11+运行环境(最新版OpenGrok要求JDK版本不低于11),启动Tomcat后访问http://localhost:8080确认Tomcat本身运行正常。 - 第二步:重新部署war包
清理原Tomcat 9 webapps目录下残留的source.war和已解压的source文件夹,将OpenGrok生成的source.war复制到Tomcat 10的webapps目录下,等待10-30秒自动解压,查看Tomcat10/logs/catalina.out日志,确认无报错、webapp初始化成功。 - 第三步:调整索引配置
重新运行OpenGrok索引命令,确认命令中-U参数指定的webapp地址为http://localhost:8080/source,若仍出现405报错,编辑Tomcat 10的conf/web.xml文件,查找拦截PUT方法的安全约束配置并注释掉,重启Tomcat后重新执行索引。 - 第四步:验证访问
索引执行完成后,访问http://localhost:8080/source即可正常进入OpenGrok界面。
其他排查项
- 确认
source.war的文件权限与Tomcat运行用户权限匹配,避免因权限不足无法解压war包 - 不要修改
source.war的文件名,若自定义文件名,访问路径需与文件名保持一致,如改为opengrok.war则需访问http://localhost:8080/opengrok - 确认系统端口8080未被其他服务占用,Tomcat启动无端口冲突报错
内容的提问来源于stack exchange,提问作者MMJ
相关产品推荐
相关产品推荐

