一、错误产生原因
一般Tomcat启动不会出现这种错误,而这种错误的产生情况大多数为编辑器执行了重启操作,但在重启之前没有手动停止Tomcat服务。
二、具体分析
1、socket bind failed 730048 的含义
经过百度翻译(权威翻译),这句话的意思为套接字绑定错误;
套接字通信 是应用层与TCP/IP协议族通信的中间抽象层,它是一组接口。应用层通过调用这些接口发送和接收数据。
2、关联报错
继续看控制台报错,一般还会出现其他错误,类似于[Http 0.0.0.0.8080]这种形式,很直观的可以看到8080端口号,其实就是端口号被占用,导致套接字绑定失败;
3、错误原因分析
综合1、2分析,套接字绑定错误,必定是当前Tomcat的套接字绑定失败了,而端口号被占用也一定是当前Tomcat的端口号被占用,导致启动失败。
为什么会出现绑定失败与端口号占用问题呢?
本例中,产生此错误的具体操作是:
卸载IDEA插件后,直接点击立即重启IDEA,而此时Tomcat已经在运行中;直接重启后,Tomcat实际上是还在运行的,所以当IDEA重启后,点击run或debug运行Tomcat就会导致此问题发生。
4、解决办法
很简单,就是关闭之前的Tomcat即可,具体操作有三种。
- 最直接的办法:重启电脑,俗话说:重启能解决99%的问题,剩下的1%问题说明该换一台机器了。
- 通过任务管理器结束进程解决:在后台进程寻找javax的进程,结束它即可;名为Java Update 的进程不要关闭了。
- 通过命令行来终止进程:详见另一篇文章。通过cmd关闭tomcat,包括HTTP和JVX的port_麻花猫耳朵的博客-CSDN博客_jvx项目通过cmd关闭tomcat;包括关闭HTTP port 为8080或者其他和JMX port为8859或者其他pid的tomcat服务进程。第一步:按下win+R键,输入cmd,点击确定第二步:输入netstat -ano|findstr 8080,查询出8080端口的pid;或者输入8859的JMX port,查询出8859的端口;第三步:输入taskkill /pid 占用进程的pid -f;本次输入的是:taskkill /pid 16228 -f
https://blog.csdn.net/sdibtjf1702/article/details/110438235