解決報錯:java.net.BindException: 無法指定被請求的地址
阿新 • • 發佈:2019-01-13
今天在linux虛擬機器上裝了tomcat,但是一直啟動不了,檢視日誌,主要報錯如下:
嚴重: 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)
用netstat -antp|grep 8005並沒有結果出現,說明8005這個埠沒有被佔用,而且在server.xml這個檔案中修改埠也沒用,那就可以排除是埠的問題。
網上的資料說是IP繫結的問題,在/etc/hosts檔案中記錄了IP地址及其對應的主機名,在這個檔案中並沒有出現localhost這個關鍵字,加入以下內容,重啟tomcat成功。
192.168.1.2(本機IP) localhost
tomcat在啟動時,會自動獲取所有localhost對映的IP,當localhost沒有對映的IP或對映的IP有錯誤時,都會報這個錯誤。
參考文章:http://www.365mini.com/page/tomcat-cannot-assign-requested-address.htm