je me connecte à un service Web avec ce client qui fonctionnent bien:Appel WS avec SSL en Java
WSCSI WSCS = new WSCSI("http://localhost:8080/ServiceV2/services/WSCSISoap?wsdl","WSCSI","WSCSISoap");
IScoring instance = new ScoringCFA(WSCS);
assertEquals(true, instance.statusService());
je dois utiliser SSL, donc je change l'URL pour: https://localhost:8181/ServiceV2/services/WSCSISoap?wsdl
Et ajouter ceci dans les options VM:
-Djavax.net.ssl.trustStore="C:\cacerts.jks"
('Keytool -list -keystore « C: \ cacerts.jks', quand je lance cette commande je vois que le certificat que j'ai besoin est là)
Quand je lance le client obtenir cette erreur:
java.security.cert.CertificateException: No name matching localhost found.)
Merci beaucoup! Maintenant, quand je dois déployer le projet en production, Je voudrais que le CERT ait le nom du domaine que j'essaie de connecter? (C'est un problème de cert en dehors du code ...?) Et Si je déploie le client avec ce "FIX", le problème est peut-être que je me connecte à un hôte inconnu? – JMira
JMira - ce 'correctif' n'est pas un correctif, mais un 'hack' uniquement destiné au test localhost, vous devriez supprimer ce code avant de passer en production. Oui, le risque est que vous appeliez un hôte incorrectement identifié (bien que le 'hack' ne fonctionne qu'avec 'localhost' comme nom d'hôte). En production, l'URL que vous essayez d'invoquer doit correspondre au nom d'hôte avec lequel le serveur s'identifie, alors oui, le nom du certificat doit correspondre au domaine auquel vous vous connectez. J'espère que cela apporte plus de clarté. –