今天线上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.(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