2013-03-28 220 views
5

我越來越客戶端或服務器上的NoRouteToHostException?

Caused by: java.net.NoRouteToHostException: No route to host 
at java.net.PlainSocketImpl.socketConnect(Native Method) 
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) 
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) 
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) 
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) 
at java.net.Socket.connect(Socket.java:529) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:564) 
at sun.reflect.GeneratedMethodAccessor638.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:140) 
at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:130) 
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707) 
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387) 
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) 
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) 
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) 

javadoc說,雖然試圖將套接字連接到 遠程地址和端口時發生錯誤

信號。通常,由於介入防火牆或中間路由器關閉,遠程主機不能達到 。

這是客戶端或遠程端的錯誤還是它可以是這些?

回答

2

要麼。它可能是阻止撥出呼叫的客戶端機器上的防火牆或另一端的防火牆。

+0

我現在面臨同樣的問題,我應該如何爲客戶機中的filewall做些什麼?我應該關閉它嗎? – user5520049

+2

這個答案如何被接受,當它只是一個瘋狂的猜測而沒有指出真正的問題 –

6

基本上它說您的客戶端無法連接到服務器,因爲地址無法從客戶端計算機訪問。

請檢查您是否連接到地址是訪問,或者通過平在命令提示符(Windows)或終端命令(基於Unix):

ping <address> 

,或者如果它是一個Web服務器你可以嘗試在你的網絡瀏覽器中檢查它。
在大多數情況下,ping命令對我很有幫助,因爲我知道爲什麼我無法連接到該地址。它可能是錯誤的地址,或者像javadoc建議的那樣,防火牆問題。