编译后ActiveMQ Artemis Web Console无法运行,访问报404错误
针对编译完成后访问/console出现404且控制台抛出org.eclipse.jetty.io.EofException: Closed的问题,可按以下步骤排查:
检查部署路径与上下文配置
确认编译后的war/jar包是否部署在Jetty的webapps目录下。若使用war包,Jetty默认将包名作为上下文路径(如artemis-console.war对应/artemis-console),需将war包重命名为console.war,或在Jetty的contexts目录下创建配置文件指定/console为上下文路径。验证hawtio路由与配置
Artemis Console基于hawtio,检查配置文件(如hawtio-default.yml)中的context-path是否设为/console。同时排查ClientRouteRedirectFilter的重定向规则,异常栈显示该过滤器在执行转发,可能因路由匹配失败导致连接提前关闭。确认编译产物完整性
重新执行mvn clean package编译,查看日志是否有资源复制失败、依赖缺失等警告。检查编译产物中是否包含前端资源(如index.html),以及WEB-INF/web.xml中是否正确映射了/console路径的Servlet或过滤器。调整Jetty连接配置
即使更换Jetty版本,仍可能因idleTimeout过短导致请求未完成就关闭连接。在Jetty配置中调大httpConfig.idleTimeout(建议设为30000ms以上)。同时查看Jetty访问日志,确认请求的完整路径与状态码,判断是资源真的不存在还是重定向过程出错。用基础请求测试排查
先访问根路径/,确认hawtio默认页面是否正常返回。使用curl -v http://localhost:8161/console命令测试,通过响应头与输出内容分析请求过程,比浏览器更易发现重定向或权限问题。排查安全与权限配置
异常栈中出现SecurityHandler,检查Jetty的安全配置是否阻止了/console路径的访问,比如角色权限设置错误。同时确认hawtio的认证配置是否正确,避免因认证失败导致重定向循环或连接提前关闭。
内容的提问来源于stack exchange,提问作者Roman R.

