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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 18:15:03