今天線上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