Caused by: java.net.BindException: Cannot assign requested address: JVM_Bind
at java.net.DualStackPlainSocketImpl.bind0(Native Method)
at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
at java.net.Socket.bind(Socket.java:644)
Cannot assign requested address翻译过来是:无法分配请求的地址。
所以排除端口占用的原因(也检查了确实端口没被占用) 。
那么检查C:\Windows\System32\drivers\etc目录下的hosts文件中关于localhost的IP配置,检查了也没有配置错误的IP。
网上普遍的方法没能解决我的问题,于是只能沉下心来debug看看到底是哪里有问题。
最后定位到抛异常的这行代码:socket.bind(LOCAL_ADDRESS);
这个LOCAL_ADDRESS的值是一个我没见过的IP,至少不是我的本地IP,
然后定位到这个LOCAL_ADDRESS的赋值是从application.yml文件中取key=ip的值。
最后查看码云的提交记录,询问同事后得知是他的本地IP,不小心提交到application.yml的配置里了.
解决:把配置改回来即可。改成:ip:0.0.0.0
遇事不盲目,一步一步找问题。