tomcat正常启动,config中使用8080端口,但是无法访问localhost:8080

当多个Tomcat版本共存时,出现启动正常但无法通过localhost:8080访问的问题。排查过程包括检查CATALINA_HOME环境变量、端口占用情况和日志文件,最终发现由于环境变量设置错误导致配置文件指向了旧版本的Tomcat,从而解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果你电脑上安装了多个tomcat版本,那么你就可以继续看下去了。否则可以退出()

省流版:看系统环境变量有没有CATALINA_HOME这一项,并且看这个CATALINA_HOME的值是否与当前版本安装路径相符合。

以下是我的排查错误纪实:

我电脑上本来也有了一个tomcat,只不过跟老师版本不一样。我把这两个都安到同一个目录了。然后我启动了老师版本,却发现输入localhost:8080没有任何响应。我首先去看了一下tomcat的config下的server.xml,发现端口号确实是8080没问题。然后试图访问localhost,发现没有响应,故推测是此处发生了问题。因而我上网按照该教程做了一遍:

127.0.0.1 拒绝了我们的连接请求--访问本地IP时显示拒绝访问

我重启电脑后,再次启动老师版本,发现还是不行。这时我开始怀疑是否我的tomcat没有正常启动,或者是否是因为8080这个端口号冲突了。所以我又找了一下如何查看端口号占用情况:

如何查看端口号是否被占用

netstat -a命令即可。我便发现,在我开着tomcat的情况下,8080这个端口没有被使用。说明好像启动不大正常。于是我打开了另一篇回答:

tomcat 启动了,为什么没打开 8080 端口?

按照它说的去查看日志文件。发现老师版本的tomcat下的log目录为空。我就去我本安装的版本下的log目录去看了,惊奇地发现,原来我在使用老师版本的tomcat时,tomcat用的是老版本的log目录。也就是说,很有可能config目录也是用的老版本的。我去查看老版本的config,发现端口是8888。于是我把老师版本的tomcat卸载了,去访问localhost:8888,成功力。

我探寻了以下原因,发现tomcat的startup里面如此写道:

if not "%CATALINA_HOME%" == "" goto gotHome
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
:okHome
rem ....
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
:end

这一段大概是在找到tomcat这个软件的位置。如果我们在环境变量里面设置了CATALINA_HOME,那么就会直接把软件位置定位到CATALINA_HOME的值的地方,随后之后的逻辑都在那边执行。

我发现我确实设置了这个CATALINA_HOME,并且:

它的值是我电脑原本有的老版本的目录!

故而,这也就说明了为什么老师的版本不去用自己的log,不去用自己的config,而用的是我电脑上的老版本的log,config了。。。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值