去评论
海欣资源

怎么解决tomcat服务器启动后访问localhost:8080报错500或者404

qqchongx
2022/05/01 16:17:05
一、问题描述
安装了tomcat9.0以后,尝试启动服务器,访问localhost:8080测试是否启动成功,结果提示404。有趣的是,在我刷新了一下页面以后报错又变成了500,错误提示主要内容就是说服务器中jsp不可用等等。具体说法我忘记截图了,凭借我自己的记忆大致描述了一下。

二、原因及解决:
1、8080端口被占用
根据大部分我搜索到的说法,启动服务器后仍然不能访问localhost:8080的主要原因一般都是8080端口被占用,这种情况下释放占用8080端口的应用,或者修改tomcat的默认端口号就可以解决。下面给出对于这种情况的具体解决方法:
8080端口被占用的解决方案:
1)、首先判断原因是否是8080端口被占用
1、打开cmd命令行窗口,输入netstat -aon|findstr “8080” 查看 8080 端口是否被占用;

如图所示,第4列显示LISTENING 即代表该端口被占用,第5列代表占用8080端口的进程代号
2、继续输入命令 tasklist|findstr “13704” (引号中输入自己查询出的数字编号)

图中第1列代表占用该端口号的应用
注意:如图所示是在我已经启动tomcat服务器,还没有关闭的情况下测试的。图中显示的java.exe 实际上应该就是指示的是tomcat服务器,因为在我关闭tomcat服务器后该占用就被解除了

如上图所示,后面两次输入都是在我关闭tomcat服务器后进行的。可以看到这时占用8080端口的应用就变成了qq。实际上QQ对8080端口的占用对tomcat服务器的影响不大,因为这时我再次启动tomcat服务器依然可以启动成功,访问localhost:8080可以正确显示。
由此可以判断是否是因为端口被占用导致启动tomcat服务器成功,但是访问localhost:8080失败。针对这种情况,我们可以选择终止进程来解除该应用对8080端口的占用。但是有时我们可能不确定终止该进程会造成的影响,所以比较建议的解决方案是修改tomcat的默认端口号。
这里我先给出终止进程的方法:
2)、终止进程的方法
1、在任务栏空白位置点击鼠标右键,启动任务管理器;
2、在任务管理器的进程栏中找到刚刚查询到的进程;
3、点击该进程,选择右下角结束进程;
这时就已经结束该进程了,可以再次在cmd中检查8080端口目前的占用情况,重新启动tomcat服务器,访问localhost:8080。如果还是访问失败,可以尝试下面修改tomcat默认端口号的方法。
3)、修改tomcat默认端口号
首先找到tomcat的安装目录
1、用记事本打开 “安装目录\conf\server.xml”


2、左上角选择编辑->替换,查找内容中输入 8080 ,然后在“替换为:”后边的文本框中输入修改后的端口,如8090,然后选择全部替换。

3、保存文件后,重新启动Tomcat 服务,在浏览器中输入 localhost:8090,成功显示安装的Tomcat的信息,问题解决!
如果在这一步中发现修改后的server.xml 文件无法保存,系统提示没有足够的权限,可能就是下面的原因。
2、系统权限不足
当tomcat 放在c盘下,就有可能会发生这种情况。这时,修改端口号无用,即使使用别的办法修改成功,tomcat服务器也没有办法完全正常启动。因为这时你会发现,即使最后显示服务器已经启动成功,前面的信息提示中也会夹杂几个警告提示。这种情况下,访问localhost:8080就会发生我刚开始所说的情况:开始报错404,刷新后变成500,并且提示jsp文件错误。
这种情况下,我们就要修改tomcat文件夹的权限。
修改tomcat文件夹权限
1、右键点击tomcat文件夹,选择属性->安全,选择编辑;


2、点击uesrs后,在下方完全控制一栏勾选允许,确定;

3、重新启动tomcat 服务器;
如果这时访问localhost:8080 成功,问题解决!
如果访问再次失败,就考虑修改默认端口号。