Tomcat Cannot assign requested address: JVM_Bind 非端口占用衝突

轉自:http://blog.csdn.net/wyc_cs/article/details/16801553 

最近朋友遇到在安裝並啓動Tomcat 6.0時,發現一直無法正確啓動,主要異常堆棧信息如下:

嚴重: StandardServer.await: create[8005]: 
java.net.BindException: Cannot assign requested address: JVM_Bind
	at java.net.PlainSocketImpl.socketBind(Native Method)
	at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
	at java.net.ServerSocket.bind(ServerSocket.java:319)
	at java.net.ServerSocket.(ServerSocket.java:185)<span style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;" id="more-189"></span>
	at org.apache.catalina.core.StandardServer.await(StandardServer.java:406)
	at org.apache.catalina.startup.Catalina.await(Catalina.java:676)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:628)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

朋友的Tomcat 6.0 是官方免安裝版本,並且是剛剛纔下載的,因此不應該是文件缺失的問題。

根據異常信息推測,可能是Tomcat需要綁定的端口或某些資源被其他應用程序佔用。

使用DOS命令netstat -an查看被佔用的端口,並未發現有任何程序佔用Tomcat使用的相關端口(例如8080),並且將Tomcat安裝目錄下的conf/server.xml文件中的端口改爲其他端口,再次運行也無法正常啓動。

通過多種測試,可以初步判斷應該不是端口占用引起的問題。如果不是端口占用的問題的話,那麼就要考慮是否是IP綁定的問題了。

經過檢查,在朋友的服務器計算機的C:\Windows\System32\drivers\etc\hosts文件中發現如下部分內容:

127.0.0.1       localhost
169.196.254.14    localhost

169.196.254.14是一個不存在的本地IP地址,將hosts文件中的第二行內容169.196.254.14 localhost去掉後,再次啓動Tomcat,發現運行正常!

在服務器領域,一臺計算機配置多個IP地址是比較常見的。Tomcat在啓動時,會根據配置去獲取所有的IP地址,並且進行逐個綁定,當發現需要綁定的IP地址不存在時,將會觸發上述異常,從而導致無法正常啓動。

<ol style="list-style: none; margin: 1.5em 2.2em; padding: 0px; outline: 0px; border: 0px currentColor; line-height: 1.5; vertical-align: baseline; background-color: transparent;" class="linenums"><li style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; list-style-type: decimal; background-color: transparent;" class="L0"><span class="com" style="color:#0800;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">//輸出localhost映射的所有IP地址</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"></span>
</li><li style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; list-style-type: decimal; background-color: rgb(238, 238, 238);" class="L1"><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"></span><span class="typ" style="color:#66066;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">InetAddress</span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">[]</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"> ips </span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">=</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"> </span><span class="typ" style="color:#66066;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">InetAddress</span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">.</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">getAllByName</span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">(</span><span class="str" style="color:#00ff;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">"localhost"</span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">);</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"></span>
</li><li style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; list-style-type: decimal; background-color: transparent;" class="L2"><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"></span><span class="kwd" style="color:#0088;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">if</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"> </span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">(</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">ips </span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">!=</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"> </span><span class="kwd" style="color:#0088;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">null</span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">)</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"> </span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">{</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"></span>
</li><li style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; list-style-type: decimal; background-color: rgb(238, 238, 238);" class="L3"><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">    </span><span class="kwd" style="color:#0088;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">for</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"> </span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">(</span><span class="typ" style="color:#66066;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">InetAddress</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"> ip </span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">:</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"> ips</span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">)</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"> </span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">{</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"></span>
</li><li style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; list-style-type: decimal; background-color: transparent;" class="L4"><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">        </span><span class="typ" style="color:#66066;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">System</span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">.</span><span class="kwd" style="color:#0088;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">out</span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">.</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">println</span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">(</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">ip</span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">.</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">getHostAddress</span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">());</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"></span>
</li><li style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; list-style-type: decimal; background-color: rgb(238, 238, 238);" class="L5"><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">    </span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">}</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"></span>
</li><li style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; list-style-type: decimal; background-color: transparent;" class="L6"><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"></span><span class="pun" style="color:#66660;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">}</span><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"></span>
</li><li style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; list-style-type: decimal; background-color: rgb(238, 238, 238);" class="L7"><span class="pln" style="color:#000000;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;"></span><span class="com" style="color:#0800;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">/* 修改上述hosts文件前,輸出:</span>
</li><li style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; list-style-type: decimal; background-color: transparent;" class="L8"><span class="com" style="color:#0800;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">* 169.196.254.14</span>
</li><li style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; list-style-type: decimal; background-color: rgb(238, 238, 238);" class="L9"><span class="com" style="color:#0800;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">* 127.0.0.1</span>
</li><li style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; list-style-type: decimal; background-color: transparent;" class="L0"><span class="com" style="color:#0800;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">* 修改文件後,輸出</span>
</li><li style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; list-style-type: decimal; background-color: rgb(238, 238, 238);" class="L1"><span class="com" style="color:#0800;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">* 127.0.0.1</span>
</li><li style="margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; list-style-type: decimal; background-color: transparent;" class="L2"><span class="com" style="color:#0800;margin: 0px; padding: 0px; outline: 0px; border: 0px currentColor; vertical-align: baseline; background-color: transparent;">*/</span></li></ol>

 

發佈了53 篇原創文章 · 獲贊 13 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章