1. 程式人生 > >解決報錯:java.net.BindException: 無法指定被請求的地址

解決報錯:java.net.BindException: 無法指定被請求的地址

今天在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