notre blog Essayé la recherche, mais n'a pas pu trouver quelques conseils si l'affichage,Regd httpclient.executeMethod (request); jette un IOException sur le serveur, alors que fonctionne sur Eclipse locale
Je viens de travailler sur un code de méthode httpsClient Post ci-dessous et face IOException
. petits pointeurs peuvent aider, ne nécessitent pas de réponses détaillées.
HttpClient httpclient = new HttpClient();
request = new PostMethod("https://ref.net/auth/token?grant_type=password");
request.setRequestHeader("Authorization", "Basic KolokYrZTo=");
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
NameValuePair[] data = {
new NameValuePair("username", "abc"),
new NameValuePair("password", "123"),
new NameValuePair("grant_type", "password"),
};
request.setRequestBody(data);
httpclient.executeMethod(request);
} catch (IOException e) {
e.printStackTrace();
logger.error("IOException in post()...."+e.getMessage());
}
Je courais ce code sur Eclipse avec commons-httpClient 3.1.jar il fonctionne parfaitement bien, mais quand je déplace mon code au serveur et essayez d'exécuter le même code, le httpclient.executeMethod(request);
throws IOException. À ma grande surprise le e.printStackTrace();
ne s'imprime pas comme e
objet lui-même est null
Comment puis-je attraper cette exception et déboguer cela, je fais quelque chose de mal ici.
Sur mon local, j'ai Java1.8 mais fonctionne au niveau de conformité du compilateur 1.6- Sur le serveur. J'ai essayé de courir à la fois 1.8 et 1.6 même erreur.
est-il lié à certains certificats, que nous pouvons avoir à configurer sur le serveur et sont présents sur le local?, Je n'ai ajouté aucun certificat si –
Si 'e' est vraiment' null' comme vous le dites, le tout devrait par la suite, lancez une exception 'NullPointerException' quand vous faites' e.printStackTrace' donc j'ai des doutes que c'est effectivement le cas. Je suppose que vous faites référence à ce que vous voyez dans votre journal. Mais là vous ajoutez juste 'e.getMessage()' qui pourrait être nul. Consignez l'exception complète (de sorte que le type d'exception soit levé et que la pile empilée soit également enregistrée) et ajoutez-la ici, afin de pouvoir en dire plus sur votre problème. – Lothar
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Échec de la construction du chemin PKIX: sun.security.provider.certpath.SunCertPathBuilderException: impossible de trouver le chemin de certification valide vers la cible demandée at sun.security.ssl.Alerts .getSSLException (Alerts.java:192) à sun.security.ssl.SSLSocketImpl.fatal (SSLSocketImpl.java:1937) à sun.security.ssl.Handshaker.fatalSE (Handshaker.java:302) –