Reste client java.net.ConnectException: Connection timed out: connect
Salut j'ai un Printemps Reste Webservice déployés dans le service weblogic. J'ai de l'avance reste client de google chrome qui fonctionne parfaitement sur https
Je suis en train de créer pour le Client sur https, Client. J'ai certificat d'autorité de certification et le certificat du client. Je l'ai créé à partir du lien ci-dessous
L'accès sécurisé à des services web restful à l'aide de jersey client Mais je suis l'exception ci-dessous
Exception in thread "main" com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection timed out: connect
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)
at com.sun.jersey.api.client.Client.handle(Client.java:652)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570)
at org.app.last.JerseyClient.get_JSON(JerseyClient.java:39)
at org.app.last.JerseyClient.main(JerseyClient.java:239)
Caused by: java.net.ConnectException: Connection timed out: connect
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 com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:395)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:272)
at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:329)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:318)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:253)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:153)
... 6 more
Semble que tout ce que endpoint que vous utilisez n'est pas valide ou tout simplement ne pas répondre.
Je peux utiliser ces point de terminaison dans le chrome reste le client fonctionne preflectly.
Plus probablement, vous avez vraiment un timeout. Cela peut se produire en raison de problèmes de réseau (réseau lent, le serveur ne répond pas, etc...), je commencerais par vérifier en essayant de cet appel à partir du même ordinateur client vers le serveur, pas de code (par exemple le navigateur si c'est un
Je suis en train de faire application/json vide requête post vers le serveur. Et la méthode est publique <T> T get_JSON(Classe<T> responseType,d'entrée de Chaîne) renvoie UniformInterfaceException { return webResource.accepter(javax.ws.rs.de base.MediaType.APPLICATION_JSON).la poste(responseType,input); } Et le point de terminaison de travail perfeclty avec l'avance de repos client dans le navigateur chrome
Peut-être que votre mise en œuvre en Java se retrouve avec une URL qui n'est tout simplement pas valide. L'API peut être en ajoutant quelque chose d'après ce que vous avez spécifié l'URL.
Je peux utiliser ces point de terminaison dans le chrome reste le client fonctionne preflectly.
Plus probablement, vous avez vraiment un timeout. Cela peut se produire en raison de problèmes de réseau (réseau lent, le serveur ne répond pas, etc...), je commencerais par vérifier en essayant de cet appel à partir du même ordinateur client vers le serveur, pas de code (par exemple le navigateur si c'est un
GET
, ou un outil comme curl
si c'est POST
ou PUT
)Je suis en train de faire application/json vide requête post vers le serveur. Et la méthode est publique <T> T get_JSON(Classe<T> responseType,d'entrée de Chaîne) renvoie UniformInterfaceException { return webResource.accepter(javax.ws.rs.de base.MediaType.APPLICATION_JSON).la poste(responseType,input); } Et le point de terminaison de travail perfeclty avec l'avance de repos client dans le navigateur chrome
Peut-être que votre mise en œuvre en Java se retrouve avec une URL qui n'est tout simplement pas valide. L'API peut être en ajoutant quelque chose d'après ce que vous avez spécifié l'URL.
OriginalL'auteur ramesh027 | 2014-03-13
Vous devez vous connecter pour publier un commentaire.
Il semble que vous avez encore un problème avec le serveur proxy. et aussi, vous pouvez avoir des problèmes avec le certificat
OriginalL'auteur user3430756
Vérifier vos paramètres de pare-feu pour voir si les ports de sortie sont bloqués, sauf pour le navigateur. Cela arrive parfois, selon la société.
Ports de sortie sont par défaut ouvert, mais cela pourrait avoir été modifiée par les administrateurs système - voir cette réponse.
Également la connexion peut être bloqué au niveau de votre proxy d'entreprise. Par exemple, dans certaines entreprises, vous ne pouvez surfer avec un navigateur, et si vous l'installez et essayez d'accéder à internet avec un autre navigateur, vous recevez un message "Il est seulement autorisé de navigateur internet avec le navigateur XX", ou un délai d'attente.
Cela fonctionne parce que le proxy vérifie l'-tête User-Agent.
Beaucoup de procurations exiger l'authentification et uniquement à donner l'accès aux utilisateurs autorisés. Chrome fils à votre automatiquement des informations d'identification dans certains HTTP tête, alors que le surf, mais votre programme de ne pas le faire.
Pour résoudre ce problème, essayez les possibilités suivantes:
imprimer l'Url de la console avec
System.out.println
et confirmer que c'est exactement le même que vous tapez dans google Chromeutiliser un navigateur basé utilitaire de ligne de commande comme curl ou wget pour vérifier si vous pouvez accéder par exemple google et aussi le point de terminaison
vérifier vos paramètres de pare-feu
J'ai travaillé sur l'ignorer ssl il a travaillé, mais il ne fonctionne pas avec ssl
Je poste la question dans l'autre question stackoverflow.com/questions/22452079/...
OriginalL'auteur Angular University
désolé pour la réponse tardive. Que je ne préfère ignorer ssl méthode peut u vérifier l'url ci-dessous qui peut être utile pour vous http://snippet-pocket.blogspot.in/2010/07/ssl-authentication-with-apache.html qui expliquent l'authentification du client.
OriginalL'auteur user3430811