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

JavaScript Discussion :

Accéder à un WebService Axis2 depuis JS


Sujet :

JavaScript

  1. #1
    Membre éprouvé Avatar de jmnicolas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2007
    Messages : 427
    Points : 976
    Points
    976
    Par défaut Accéder à un WebService Axis2 depuis JS
    Bonjour,

    je cherche à accéder à un Web Service qui tourne sous un serveur Axis2 et ça ne se fait pas sans mal. Jusqu'à maintenant je n'ai qu'une solution partielle : j'utilise GXmlHttp de l'API GoogleMaps et je rentre l'adresse de mon WS.

    Le soucis c'est que ça ne marche pas sous FireFox et sous IE ça me lance un pop up de sécurité (de plus je suis obligé de fermer et réouvrir IE si je veux relancer l'appel au WS, un simple refresh ne suffit pas).

    J'ai trouvé quelques scripts tous prêts permettant d'accéder à des WS, mais ils ont été écrits pour dotnet et ça ne fonctionne pas sur AXIS2.

    Si quelqu'un a des suggestions à faire, je suis tout ouïe

    Mon code (pour le moment je me contente d'afficher un simple "alert", le parsing du xml se fera après) :

    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
    function ArretsParsing (dx)
        {
            // on crée des variables de type Array, qui recoivent comme valeur les balises choisies dans le document xml
            var codArret = dx.getElementsByTagName('ax21:codArret');
            var numParc = dx.getElementsByTagName('ax21:parc');
     
     
     
        	// On récupère les valeurs textuelles contenues dans la balise choisie, et on l'applique au formulaire.
        	// En xml, la valeur d'une balise est le nodeValue de son premier enfant (firstChild)
            alert (numParc[1].firstChild.nodeValue);
     
        }
     
     
        function load()
        {
          if (GBrowserIsCompatible())
          {
            // ESSAIS : on va lire le fichier xml et on affiche son contenu
            var request = GXmlHttp.create();
            request.open("GET", "http://192.168.90.40:8080/axis2/services/Serveur/passageArret?pCodArret=LiF01", true);
            request.onreadystatechange = function()
            {
                if (request.readyState == 4)
                {
                    var docXml = GXml.parse(request.responseText);
                    ArretsParsing (docXml)  ;
                }
          }
          request.send(null);
        }
    Les messages d'erreur de la console FireFox :
    Erreur*: uncaught exception: [Exception... "Access to restricted URI denied" code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)" location: "http://localhost/stage/essais5.html Line: 40"]
    Erreur de sécurité*: le contenu situé à http://localhost/stage/essais5.html ne peut pas charger de données à partir de http://192.168.90.40:8080/axis2/serv...CodArret=LiF01.
    A noter que j'ai utilisé l'astuce pour autoriser les appels "cross domains" trouvée ici mais que ça n'a rien changé.

    Message d'avertissement de IE :

    The greatest shortcoming of the human race is our inability to understand the exponential function. Albert A. Bartlett

    La plus grande lacune de la race humaine c'est notre incapacité à comprendre la fonction exponentielle.

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    tu fais tes tests en local ?
    si oui c'est normal que cela ne fonctionne pas sous FF et que tu es une alerte de sécurité en local
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  3. #3
    Membre éprouvé Avatar de jmnicolas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2007
    Messages : 427
    Points : 976
    Points
    976
    Par défaut
    Yep je fais mon dev en local, c'est juste un "proof of concept" pour finir mon stage.

    Comment se fait il que FF ne passe pas en local ?
    The greatest shortcoming of the human race is our inability to understand the exponential function. Albert A. Bartlett

    La plus grande lacune de la race humaine c'est notre incapacité à comprendre la fonction exponentielle.

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    ff accepte que des liens en relatif!

  5. #5
    Membre éprouvé Avatar de jmnicolas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2007
    Messages : 427
    Points : 976
    Points
    976
    Par défaut
    Le problème c'est que même quand je place ma page sur mon site perso Orange, Firefox continue à me bloquer l'accès au Web Service, et ce malgré les paramétrages trouvés ici ...

    Sous IE il m'a suffit de cocher "Accès aux sources de données sur plusieurs domaines" et le soucis a été résolu.

    Et comme je n'ai pas la possibilité de faire côtoyer le serveur AXIS2 et mon serveur web sur le même domaine ...
    The greatest shortcoming of the human race is our inability to understand the exponential function. Albert A. Bartlett

    La plus grande lacune de la race humaine c'est notre incapacité à comprendre la fonction exponentielle.

  6. #6
    Membre éprouvé Avatar de jmnicolas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2007
    Messages : 427
    Points : 976
    Points
    976
    Par défaut
    Bon j'ai réussit à contourner le problème en utilisant un proxy en php : le javascript envoie l'adresse du web service au proxy php qui se contente de faire la requête et de la retransmettre.

    Voici le code spécifique à mon appli :
    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
    <?php
     
    $_url = $_GET['url'];
     
    $_param = $_GET['pCodArret'];
     
    $handle = fopen($_url . '?pCodArret=' . $_param, "rb");
     
    $contents = '';
     
    while (!feof($handle))
    {
        $contents .= fread($handle, 8192);
    }
     
    header("Content-type: text/xml");
     
    //on affiche la page
    print_r($contents);
     
     
    fclose($handle);
     
    ?>
    L'astuce a été trouvée sur ce site.
    Je passe donc le sujet en résolu, merci
    The greatest shortcoming of the human race is our inability to understand the exponential function. Albert A. Bartlett

    La plus grande lacune de la race humaine c'est notre incapacité à comprendre la fonction exponentielle.

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

Discussions similaires

  1. Impossible d'accéder a ma base depuis un pc distant
    Par transistor49 dans le forum MS SQL Server
    Réponses: 18
    Dernier message: 08/09/2009, 12h25
  2. [C#] Accéder à éléments de form1 depuis form2
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 14
    Dernier message: 24/05/2006, 13h29
  3. [VB.NET] Accéder au formulaire principal depuis un module
    Par smedini dans le forum Windows Forms
    Réponses: 8
    Dernier message: 02/02/2006, 15h33
  4. Comment accéder à une DLL COM depuis un exécutable ?
    Par Denys dans le forum API, COM et SDKs
    Réponses: 10
    Dernier message: 20/09/2005, 09h04
  5. Réponses: 2
    Dernier message: 28/10/2004, 17h54

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