Bonjour,

Je suis actuellement en train de développer une application Web qui aura pour but de ce connecter à un service Web (développé par un de mes clients).
J'ai généré le code objet avec Jax-B et le fichier WSDL fourni par mon client. J'ai créer un serveur Mockup en local avec SoapUI, j'arrive à envoyer des requêtes et à recevoir les réponses sans problème.
Par contre, j'essai maintenant de me connecter à l'adresse du webService de production (donc celui de mon client), qui est accessible depuis l'internet.
Le problème est que le service requiert une authentification SSL. En fait, lorsque je vais sur la page, j'ai possibilité de télécharger le certificat serveur et de l'installer. Je pensait que cela suffirai pour me permettre de me connecter via mon client webservice, mais ce n'est pas le cas : j'avais des messages d'erreur du style 'SSLHandchake Error". J'ai donc télécharger le certificat et l'ai importé dans mon keystore. J'ai ensuite ajouté les lignes de code suivantes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
        Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
        System.setProperty("javax.net.ssl.keyStore", "C:\\Users\\Polo\\my.keystore");
        System.setProperty("javax.net.ssl.keyStorePassword", "password");
        System.setProperty("javax.net.ssl.trustStore", "C:\\Users\\Polo\\my.keystore");
        System.setProperty("javax.net.ssl.trustStorePassword", "password");
 
Service service = Service.create(
                new URL("https://monadresse/services"),
                new QName("ws://monadresse/VehicleDataAvailabilityService/V1", "VehicleDataAvailabilityService"));
Je n'ai plus l'erreur SSL, mais j'ai maintenant deux nouvelles erreurs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
com.sun.xml.internal.ws.wsdl.parser.InaccessibleWSDLException: 2 counts of InaccessibleWSDLException.
 
java.io.IOException: Server returned HTTP response code: 500 for URL: https://monadresse/services
java.io.IOException: Server returned HTTP response code: 500 for URL: https://monadresse/services?wsdl
D'après ce que j'en conclut, le programme n'arrive pas à accéder au fichier WSDL. C'est normal, les WSDL ne sont pas accessible chez mon client. Je n'ai que l'URL de connexion, ainsi que des namespaces à appliquer. L'adresse à laquelle je me connecte heberge 4 webservices, et donc j'essai de me connecter à l'un de ces services, mais étant habitué à me connecter directement à des fichiers WSDL directement (auquels je n'ai pas accès en ligne, mais je les possède en locale) je ne sais meme pas si ma manipulation est bonne...
Un collegue m'a indiqué qu'il fallait "invoquer" le webservice, je pense être sur la bonne voie ? (quoique) mais je ne sais vraiment pas trop comment.

je reprécise que les fichiers WSDL ne sont pas accessibles en ligne, donc il est normal que l'adresse "https://monadresse/services?wsdl" ne réponde pas...

Merci par avance à ceux qui auront la connaissance et le temps de réponse !