Java web service via https - Comment ajouter un certificat auto-signé dans un client de l'api?

J'ai un "Hello World" service web créé avec axis2. Je voudrais écrire un client de l'api, qui pourrait utiliser ce service sur https avec un certificat auto-signé. J'ai un certificat auto-signé myCertificate.cer et un keystore contenant.

Voici mon client API :

public class MyApi{

public Object callMyService(){

Axis2TestStub stub = new Axis2TestStub(
"https://localhost:8443/axis2/services/Axis2Test");

System.setProperty("javax.net.ssl.trustStore",
"src/main/resources/myKeystore.jks")
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");

Hello request = new Hello();
request.setMot("World");
HelloResponse response = stub.hello(request);
Object mot = response.get_return();
return mot;

Il fonctionne, mais je voudrais utiliser myCertificate.cer et pas un keystore contenant. Quelqu'un sait comment faire cela? J'ai essayé de remplacer https protocole, sans succès :

HttpSecureProtocol myHttpsProtocol = new HttpSecureProtocol();
myHttpsProtocol .setCheckHostname(false);
myHttpsProtocol .addTrustMaterial(new TrustMaterial("myCertificate.cer"));
Protocol customHttps = new Protocol("https", 
(ProtocolSocketFactory) myHttpsProtocol , 8443);
Protocol.registerProtocol("https", customHttps);

OriginalL'auteur albertototo | 2010-02-08