Bonjour,
je débute dans les webservices et je dois faire une application client en java qui me permet de m'y connecter. Dans cette appli je dois sortir par mon proxy, faire la connexion SSL à l'aide d'un certificat fourni, passer l'authentication Basic puis récupérer le résultat de ma requête sur le service.
Voilà ce que j'ai reçu par mon hôte qui héberge les webservices auxquels je dois accèder (et qui ne fait évidement aucun support ou aide pour leur accès...) :
- L'URL du service (https://www.myurl.com/getmyservice?PARAM=toto)
- Le certificat (format xxxx.p12)
- Mon UserID et password pour l'authentication Basic
Mais hélas aucun fichier WSDL (qui m'aurait bien facilité la tâche).
J'ai fait pas mal de recherche pour ma connexion, mais les exemples que j'ai trouvé n'ont pas été fructifiant... Le problème étant ce certificat que je n'arrive pas à utiliser.
Voilà le code de connexion que j'ai :
et voilà l'erreur qui me saute au nez...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 //Création de l'accès vers le service Service service = new Service(); //Création d'un appel vers le service Call call = (Call)service.createCall(); //Récupération de l'adresse URL du service accédé call.setTargetEndpointAddress(new java.net.URL(endpoint)); //Informer que je passe par le proxy System.getProperties().put("https.proxySet", "true" ); System.getProperties().put("https.proxyHost", proxyHost); System.getProperties().put("https.proxyPort", proxyPort); System.setProperty("javax.net.ssl.trustStore", CertificatPath ); System.setProperty("javax.net.ssl.trustStoreType", "PKCS12" ); System.setProperty("javax.net.ssl.trustStorePassword", CertificatPassword ); //Invocation du service & Récupération du résultat String message = (String)call.invoke("",new Object[]{}); System.out.println("Retour = " + message);
Est-ce que qqun saurait m'aider? Merci d'avance...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 java.net.SocketException: Default SSL context init failed: IBMTrustManager: Problem accessing trust store java.io.IOException: Error in loading the keystore: Private key decryption error: (java.security.InvalidKeyException: Illegal key size) --------------------------------------------- AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.net.SocketException: Default SSL context init failed: IBMTrustManager: Problem accessing trust store java.io.IOException: Error in loading the keystore: Private key decryption error: (java.security.InvalidKeyException: Illegal key size) faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:java.net.SocketException: Default SSL context init failed: IBMTrustManager: Problem accessing trust store java.io.IOException: Error in loading the keystore: Private key decryption error: (java.security.InvalidKeyException: Illegal key size) at javax.net.ssl.DefaultSSLSocketFactory.createSocket(SSLSocketFactory.java:8) at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:178) at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191) at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404) at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) at org.apache.axis.client.Call.invokeEngine(Call.java:2784) at org.apache.axis.client.Call.invoke(Call.java:2767) at org.apache.axis.client.Call.invoke(Call.java:2443) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:2391) at Form_WS.main(Form_WS.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:615) at org.eclipse.ve.internal.java.vce.launcher.remotevm.JavaBeansLauncher.main(JavaBeansLauncher.java:79) {http://xml.apache.org/axis/}hostname:MyComputerName
Partager