web-dev-qa-db-fra.com

NoRouteToHostException sur le client ou le serveur?

Je reçois

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 dit

Signale qu'une erreur s'est produite lors de la tentative de connexion d'un socket à une adresse et un port distants. En règle générale, l'hôte distant ne peut pas être atteint en raison d'un pare-feu intermédiaire ou si un routeur intermédiaire est en panne.

Cette erreur est-elle du côté client ou du côté distant ou cela peut être l'un ou l'autre?

10
padis

Soit. Il peut s'agir d'un pare-feu sur la machine cliente bloquant les appels sortants ou quelque part à l'autre extrémité.

6
Qwerky

Fondamentalement, il indique que votre client ne peut pas se connecter au serveur car l'adresse est inaccessible à partir de la machine cliente.

Veuillez vérifier que l'adresse à laquelle vous vous connectez est accessible, soit via la commande ping dans votre invite de commande (Windows) ou via un terminal (basé sur Unix):

ping <address>

ou s'il s'agit d'un serveur Web, vous pouvez essayer de le vérifier dans votre navigateur Web.
La commande ping est utile pour moi dans la plupart des cas, car je saurais pourquoi exactement je ne peux pas me connecter à l'adresse. Il peut s'agir d'une adresse erronée ou, comme le suggère javadoc, d'un problème de pare-feu.

8
justhalf