游客发表

tomcat启动了8080找不到网页

发帖时间:2026-10-17 05:03:09

Tomcat起来了,启动端口也监听了,到网浏览器里敲localhost:8080,启动结果给你来个404或者干脆“无法访问此网站”。到网你第一反应是启动“我配置错了吧”,查了server.xml,到网改了port,启动重启了N遍,到网还是启动老样子。别急着删安装包,到网问题往往不在Tomcat本身,启动而在你访问的到网路径上。

先做个基础判断:Tomcat默认根路径下放的启动是webapps/ROOT里的内容。如果你把项目打包成myapp.war丢进webapps,到网那访问地址应该是启动http://localhost:8080/myapp/,不是http://localhost:8080/。8080端口只认ROOT目录下的index.jsp或index.html。你直接访问根路径,Tomcat会去ROOT里找欢迎页,找不到就给你404。这时候你该检查的是webapps/ROOT下有没有文件,而不是盯着端口号发呆。

另一个高频坑是——你根本没启动成功,只是看到了“Tomcat started”的日志就以为万事大吉。用curl -I http://localhost:8080看一眼返回码,如果是000或者连接拒绝,那就是进程没起来或者被防火墙挡了。Windows下常见的是端口被占用,比如Skype或者另一个Java进程抢了8080。执行netstat -ano | findstr :8080,看看PID是谁,任务管理器里杀掉再说。别信那个“startup.bat”窗口开着就代表成功,窗口可能闪退了,你只是没注意。

还有种情况,你改了server.xml里的port,但忘了改redirectPort。比如你设了8080为8088,但redirectPort还指向8443,某些请求会跳转到错误端口。更隐蔽的是,你同时改了Connector的protocol属性,比如从HTTP/1.1改成AJP,那浏览器根本没法直接访问。这时候页面报错不是404,而是“无法解析服务器的名称或地址”,因为Tomcat在监听AJP协议,不是HTTP。

最后说个最蠢但最常见的错误——你访问的是http://localhost:8080,但Tomcat实际监听的是IPv6地址。你机器上可能同时启用了IPv4和IPv6,浏览器解析localhost时优先用了IPv6的::1,而Tomcat默认只绑定了IPv4的127.0.0.1。解决办法很简单:用http://127.0.0.1:8080试试,如果通了,那就是这个问题。或者改server.xml里的address="0.0.0.0",让它监听所有网卡。

排查顺序建议是这样:先确认进程活着(看任务管理器或ps),再确认端口监听(netstat -ano),然后试curl http://127.0.0.1:8080,返回HTML代码说明Tomcat正常,问题在浏览器或路径;返回空或错误,就检查logs/catalina.out最后几行,通常有异常堆栈告诉你哪里炸了。别一上来就卸载重装,那是最后的极端手段,而且大概率没用。

    热门排行

    友情链接