如何修复端口异常Address already in use: bind
在给Spring Boot配置SSL证书实现https时,遇到如下报错信息:
018-03-04 16:40:18.423 ERROR 9484 --- [ main] o.a.coyote.http11.Http11NioProtocol : Failed to start end point associated with ProtocolHandler ["https-jsse-nio-127.0.0.1-8443"]
java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_131]
at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_131]
at sun.nio.ch.Net.bind(Net.java:425) ~[na:1.8.0_131]
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[na:1.8.0_131]
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.8.0_131]
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:210) ~[tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:990) ~[tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:635) ~[tomcat-embed-core-8.5.23.jar:8.5.23]
一、背景介绍
- 01
启动spring boot 应用时,招报出如下错误,通过错误提示可以看到端口被占用了。
- 02
查看日志可以看到被占用的端口为8443
二、解决方案
- 01
打开cmd命令行,执行命令netstat -ano|findstr "8443"查看8443端口是否被占用及占用此端口的PID,从下图中可以看到占用端口的进程ID(PID)为2976
- 02
执行命令tasklist|findstr "2796"查看此PID对应的进程名称为软件名称 如下图所示,可以看到2796对应的软件名称为VisualSVNServer.exe
- 03
执行命令taskkill /f /t /im VisualSVNServer.exe杀死此进程,如果出现如下错误,则可以通过Windows任务管理器来关闭进程树。
- 04
进程关闭完成后,重启启动spring boot应用,可以看到8443端口启用成功了。