IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

[JAX-WS] Erreur "Failed to access the WSDL"


Sujet :

Services Web Java

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut [JAX-WS] Erreur "Failed to access the WSDL"
    Bonjour à tous,

    je dois me connecter à un service web donc écrire un client java.
    J'ai donc utiliser l'outil wsimport pour générer les classes pour me connecter à ce service.
    Le problème c'est que ce service demande une authentification avec Login/mot de passe, j'ai donc tester depuis le navigateur et récupérer en local le wsdl.

    J'ai donc eu une classe (JAX-WS) tel quelle
    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
     
    private final static URL CLIENTPULLSERVICE_WSDL_LOCATION;
        private final static Logger logger = Logger.getLogger(XXXX.class.getName());
     
        static {
            URL url = null;
            try {
                URL baseUrl;
     
     
                baseUrl = pkg.ClientPullService.class.getResource(".");
                url = new URL(baseUrl, "https://XXXXXXXXXX?wsdl");
     
     
            } catch (MalformedURLException e) {
                logger.warning("Failed to create URL for the wsdl Location: 'XXXXXXXXXX?wsdl', retrying as a local file");
                logger.warning(e.getMessage());
            }
            CLIENTPULLSERVICE_WSDL_LOCATION = url;
        }
     
        public ClientPullService(URL wsdlLocation, QName serviceName) {
     
     
          super(wsdlLocation, serviceName);
        }
     
        public ClientPullService() {
            super(CLIENTPULLSERVICE_WSDL_LOCATION, new QName("XXXXXXXXXXX", "clientPullService"));
        }
    Le problème c'est quand j'essaye d'utiliser cette classe par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ClientPullService clientPullService = new ClientPullService();
    je reçois le message d'erreur suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    javax.xml.ws.WebServiceException: Failed to access the WSDL at: XXXXX?wsdl. It failed with: 
        sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.
    Je comprends bien car il ne peut pas récupérer le wsdl sans s'authentifier correctement mais comment rajouter ce code ?

    Merci car je suis perdu dans Google...
    ----------------------------------
    La façon la plus efficace de combattre un système qui ne nous convient plus
    n'est pas de lutter contre lui mais de s'en désintéresser et de ne plus l'alimenter...

    ----------------------------------

  2. #2
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut
    Après pas mal de tests et de recherches ceci a résolu mon problème mais ce n'est sans doute pas l'idéal.
    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
    TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
                public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                    return null;
                }
     
                public void checkClientTrusted(
                        java.security.cert.X509Certificate[] certs, String authType) {
                }
     
                public void checkServerTrusted(
                        java.security.cert.X509Certificate[] certs, String authType) {
                }
            } };
     
            SSLContext sc = SSLContext.getInstance("SSL");
            sc.init(null, trustAllCerts, new java.security.SecureRandom());
            HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory())
    ----------------------------------
    La façon la plus efficace de combattre un système qui ne nous convient plus
    n'est pas de lutter contre lui mais de s'en désintéresser et de ne plus l'alimenter...

    ----------------------------------

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/03/2014, 13h09
  2. Réponses: 0
    Dernier message: 30/08/2012, 01h40
  3. [SDK 3.6.1] Erreur Failed to create the java virtual machine
    Par arsene555 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/02/2011, 15h42
  4. Réponses: 1
    Dernier message: 15/12/2008, 21h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo