[Tomcat/Java EE/Linux]Tomcat啟動異常:StandardServer.await: create[localhost:8005]: java.net.BindException: 無法指定被請求的地址
阿新 • • 發佈:2021-06-10
1 問題背景
- 部門新成員小J在一臺虛擬機器(ip:
192.168.191.96
)內安裝部署部門的資料治理產品(含: 20餘個微服務模組 + 1套(使用者)基礎管理系統BMS)。
- 小J啟動BMS的Tomcat時,屢次報此錯:StandardServer.await: create[localhost:8005]: java.net.BindException: 無法指定被請求的地址
嚴重: StandardServer.await: create[localhost:8005]: java.net.BindException: 無法指定被請求的地址 at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:382) at java.net.ServerSocket.bind(ServerSocket.java:375) at java.net.ServerSocket.<init>(ServerSocket.java:237) at org.apache.catalina.core.StandardServer.await(StandardServer.java:444) at org.apache.catalina.startup.Catalina.await(Catalina.java:781) at org.apache.catalina.startup.Catalina.start(Catalina.java:727) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:4 at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)
2 原因分析
從create[localhost:8005]:
入手,可分析出2類情況:
- 情況1(埠角度):8005 埠是否被佔用 (排查結論:8005埠未被佔用)
- 情況2(域名角度): localhost 域名是否解析正確 (結論: localhost 域名解析錯誤;hosts檔案中無localhost的ip與域名的對映配置)
未修正localhost的域名IP對映配置前:↓
已修正localhost的域名IP對映配置後:↓
3 解決方法
- step1 修改 hosts檔案中 localhost 域名的IP對映配置
vi /etc/hosts
192.168.191.96 localhost
(或: 127.0.0.1 localhosts)
- step2 重啟 tomcat 即可