tomcat java.net.BindException: Cannot assign requested address 解决方法

时间:2023-12-21 12:23:02

今天线上TOMCAT启动时遇到了下比较麻烦的问题,错误如下:

21-Apr-2016 15:14:19.077 SEVERE [main] org.apache.catalina.core.StandardServer.await StandardServer.await: create[localhost:8015]:
java.net.BindException: Cannot assign requested address
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:420)
at org.apache.catalina.startup.Catalina.await(Catalina.java:717)
at org.apache.catalina.startup.Catalina.start(Catalina.java:663)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) 21-Apr-2016 15:14:19.077 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-80"]
21-Apr-2016 15:14:19.082 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"]

  从日志来看一直以为端口占用,认真分析端口占用原因一直没有找到。系统在绑定8015端口的时候,发现TCP8015端口无法创建,因此系统出现await并对应出现了pause,过了预设的超时时间还没有完成我们可以看到tomcat执行了stop的操作,所以很显然,tomcat没有启动成功!

经过多次排查,发现tomcat在绑定数据的时候是绑定在localhost上面的,查看一下HOST,发现运维改了host文件里面有输入中文的因为符号,一般都看不了来,修改后启动成功了。

127.0.0.1 localhost