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

XML/XSL et SOAP Discussion :

Type non-résolu Map


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 7
    Par défaut Type non-résolu Map
    Bonjour à tous.

    Je suis confronté à un problème dans un fichier WSDL que j'ai importé sur Message Broker.
    Ce fichier fait appel au type "Map" qui est défini par le namespace "http://xml.apache.org/xml-soap".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <wsdl:definitions targetNamespace="http://blabla:8080/blabla/blabla/Blabla" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
    xmlns:apachesoap="http://xml.apache.org/xml-soap" >
    Par la suite, je l'utilise comme dans le bout de code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <wsdl:message name="getAuthentification">
        <wsdl:part name="toto1" type="apachesoap:Map"/>
        <wsdl:part name="toto2" type="soapenc:string"/>
        <wsdl:part name="toto3" type="soapenc:int"/>
      </wsdl:message>
    L'erreur que j'ai est la suivante :

    WSDL: Le type 'Map' référencé par la partie toto1 ne peut pas être résolu.
    Est-ce normal que l'URL "http://xml.apache.org/xml-soap" ne redirige vers rien ? Après un namespace n'est pas forcément un document.

    Si quelqu'un a une piste, je suis preneur !

    Merci d'avance.

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    WSDL: Le type 'Map' référencé par la partie toto1 ne peut pas être résolu.
    La raison s'est trouvée fondamentalement dans la section de wsdl:types. Il faut là définir le type (complexe) qui est nommé Map dans la partie de schéma avec le targetNamespace "http://xml.apache.org/xml-soap". (Une parenthèse : il est archaïque et peu d'usage depuis assez longtemps déjà, à vrai dire.)
    Est-ce normal que l'URL "http://xml.apache.org/xml-soap" ne redirige vers rien ? Après un namespace n'est pas forcément un document.
    Ce n'est pas très clair ce que vous entendez dire, mais on peut un peu deviner ... non, le namespace désigné par "http://xml.apache.org/xml-soap" n'est pas nécessairement "redirigé" vers quelque chose : ce n'est pas pris comme un url, il n'est qu'un uri en tant qu'un nom unique non-ambigue, dans le meilleur cas ou le cas souhaîté.

    Donc, si vous voulez des aides plus concrètes, il vous faut montrer la section wsdl:types ou bien vous la regardez de plus près vous-même.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 7
    Par défaut
    Bonjour Tsuji

    Merci de m'avoir répondu déjà.

    En fait, j'ai cela dans mon WSDL que l'on m'a transmis :

    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
    <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
         <import namespace="http://exception.metier.framework.civitas.fr" /> 
         <import namespace="Boite_A_Tache" /> 
         <import namespace="http://srvcegid01:8080/gfprod/services/Boite_A_Tache" /> 
         <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> 
         <complexType name="mapItem">
             <sequence>
                  <element name="key" nillable="true" type="xsd:anyType" /> 
                  <element name="value" nillable="true" type="xsd:anyType" /> 
             </sequence>
        </complexType>
        <complexType name="Map">
            <sequence>
                 <element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem" /> 
            </sequence>
        </complexType>
     </schema>
    On voit que le type "Map" est bien défini.
    Sauf que lorsque j'importe le WSDL sur le Websphere Message Broker d'IBM, ce WSDL est transformé.

    Voici une partie du WSDL "transformé" qui peut t'intéresser :

    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
     
    <wsdl:documentation>
          <wsdl:appinfo source="WMQI_APPINFO">
               <MRWSDLAppInfo imported="true">
                     <generatedXSD location="blablabla_1_InlineSchema1.xsd"/>
                     <generatedXSD location="blablabla_1_InlineSchema2.xsd"/>
                     <generatedXSD location="blablabla_1_InlineSchema3.xsd"/>
                     <generatedXSD location="blablabla_1_InlineSchema4.xsd"/>
                     <binding hasEncoding="true" imported="true" name="BlablaSoapBinding" originalBindingStyle="rpc"/>
                     <generatedXSD location="blablabla_1.wsdl"/>
               </MRWSDLAppInfo>
         </wsdl:appinfo>
    </wsdl:documentation>
     
    <wsdl:types>
        <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
            <import namespace="http://bla.bla.bla.fr"/>
            <import namespace="blabla"/>
            <import namespace="http://blabla:8080/blabla/blabla/blabla"/>
            <xsd:include schemaLocation="blabla1_InlineSchema1.xsd"/>
        </schema>
         ....
        (autres schemas)
    <wsdl:types>
    C'est étonnant (en réalité non, car il doit y avoir une erreur bête...), étant donné que le type est bien défini en amont de la transformation.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Bah vu qu'il fait un xsd:include, on aurait pu s'attendre à ce que le fichier inclus ait été autogénéré lui aussi et qu'il contienne la définition de Map...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 7
    Par défaut
    Le problème vient surement de Websphere Message broker, et non du WSDL

  6. #6
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Je dirais mettre à jour les toolkits... c'est une opération assez compliquée d'externalization des schemas qu'on puisse s'attendre des bugs inévitables. Ceci à part, tu devrait regarder physiquement le fichier apparu dans l'élément xsd:include, blabla1_InlineSchema1.xsd, son contenu, son lieu (à coté du wsdl ?) etc ... On peut s'attendre la définition Map se retrouve là normalement. Voilà.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/07/2014, 22h07
  2. LNK2019: symbole externe non résolu __ftol2_sse
    Par ellipse dans le forum MFC
    Réponses: 1
    Dernier message: 26/04/2006, 23h48
  3. Jeton non résolu???
    Par vdumont dans le forum C++
    Réponses: 9
    Dernier message: 14/03/2006, 13h09
  4. certains types non documentés?
    Par hansaplast dans le forum wxWidgets
    Réponses: 5
    Dernier message: 02/02/2006, 13h15
  5. LNK2019 symbole externe non résolu
    Par devmat dans le forum MFC
    Réponses: 3
    Dernier message: 04/01/2006, 00h14

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