问题描述:Failed to initialize end point associated with ProtocolHandler ["http-bio-80"] java.net.BindException: Address already in use: NET_Bind <null>:80
在学习springmvc的时候,跟着黑马视频进行学习,结果,运行第一个springmvc项目的时候,出现["http-bio-80"]这种的情况。通过查看资料,得到,原因是端口被占用的情况。
首先查看这个端口被谁占用了,在命令提示符下输入:netstat -ano | findstr "80"
找到端口80对应的进程pid是4。在从任务管理器里面找到pid是4的进程是System。这个进程不能手动关闭。
需要理解,80端口就是HTTP服务器所使用的默认端口号。如果电脑启用了IIS服务,这个端口就会默认被占用的。
通过总结看过的博客有以下解决方案:
1.手动关闭IIS服务。
Failed to initialize end point associated with ProtocolHandler ["http-bio-80"] java.net.BindExce问题解决-CSDN博客
2.(手动关闭IIS服务无法解决问题)通过命令关闭:
80端口被占用的几种情况及解决方法_80端口占用-CSDN博客
3.通过注册表,找到HTTP对应的默认端口号,改掉。
80端口被占用的两种解决方案 - 超详细(已解决)_80端口被占用怎么解决-CSDN博客
首先我们需要理解,端口80这个的含义是什么,在计算机网络一书里面介绍,这个端口80表示是提供给HTTP超文本传输协议 使用的。
但是,个人感觉吧,通过上述方式修改并不太好。首先IIS服务,是非常重要的一个服务,各种服务器的启用都需要用到IIS服务。而且如果关闭HTTP超文本传输协议的80端口,可能会造成网页打不开的情况。所以,根据自己的理解,去修改tomcat服务的默认80端口不就好了!
解决方式:
修改 Apache下载目录下conf目录的settings.xml文件。
最简单的解决方式:
这个时候在返回IDEA运行项目就不会出现端口被占用的情况了。
还有一种情况,就是修改了默认配置下的端口号发现还是端口被占用了。原因出在pom.xml引入了tomcat,而不是用的是我们下载的tomcat。
结果:已经变成8888端口了。
注意:最后在浏览器需要输入,http:/localhost:8888/ 。需要加上端口号才能正常访问。
修正:“修改 Apache下载目录下conf目录的settings.xml文件”。这种在配置文件里面修改port的方式不太好。后面在做新的实验的时候,在导入一些新的包,会出现导入失败:Could not transfer artifact com.fasterxml.jackson.core:jackson-databind:pom: 。问题出在修改了端口。所以最好的方式还是直接修改pom里面build标签的端口号。