web-dev-qa-db-ja.com

クライアントまたはサーバーで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 は言う

ソケットをリモートアドレスとポートに接続しようとしたときにエラーが発生したことを通知します。通常、ファイアウォールが介在しているため、または中間ルーターがダウンしている場合、リモートホストに到達できません。

このエラーはクライアント側またはリモート側で発生しますか、それともこれらのいずれかですか?

10
padis

どちらか。発信呼び出しをブロックするクライアントマシン上のファイアウォール、または反対側のどこかにある可能性があります。

6
Qwerky

基本的に、アドレスはクライアントマシンからアクセスできないため、クライアントはサーバーに接続できないと表示されます。

接続しているアドレスにアクセスできることを確認してください。コマンドプロンプト(Windows)またはターミナル(Unixベース)のpingコマンドを使用してください。

ping <address>

または、それがWebサーバーの場合は、Webブラウザーで確認することができます。
pingコマンドは、ほとんどの場合に役立ちます。アドレスに接続できない理由を正確に知ることができるからです。アドレスが間違っているか、javadocが示唆しているように、ファイアウォールに問題がある可能性があります。

8
justhalf