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

Talend Discussion :

Webservice et Talend 4


Sujet :

Talend

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Webservice et Talend 4
    Bonjour à tous,

    pour commencer, je dispose d'une ancienne version de Talend, la version 4. J'ai beaucoup de mal à trouver de la documentation sur cette version. Si vous savez où je peut trouver cela, ça pourrais déjà bien m'aider.

    Je cherche à faire fonctionner le composant TWebServiceInput, le seul composant existant en version 4 de talend.

    Ci-dessous le wsdl : (j'ai enlevé la première partie)

    Code XML : 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    <wsdl:message name="IClesExternes_GetCleExterne_InputMessage">
    <wsdl:part name="parameters" element="tns:GetCleExterne"/>
    </wsdl:message>
    <wsdl:message name="IClesExternes_GetCleExterne_OutputMessage">
    <wsdl:part name="parameters" element="tns:GetCleExterneResponse"/>
    </wsdl:message>
    <wsdl:message name="IClesExternes_MiseAJourCleExterne_InputMessage">
    <wsdl:part name="parameters" element="tns:MiseAJourCleExterne"/>
    </wsdl:message>
    <wsdl:message name="IClesExternes_MiseAJourCleExterne_OutputMessage">
    <wsdl:part name="parameters" element="tns:MiseAJourCleExterneResponse"/>
    </wsdl:message>
    <wsdl:message name="IClesExternes_SuppressionCleExterne_InputMessage">
    <wsdl:part name="parameters" element="tns:SuppressionCleExterne"/>
    </wsdl:message>
    <wsdl:message name="IClesExternes_SuppressionCleExterne_OutputMessage">
    <wsdl:part name="parameters" element="tns:SuppressionCleExterneResponse"/>
    </wsdl:message>
    <wsdl:message name="IClesExternes_CreationCleExterne_InputMessage">
    <wsdl:part name="parameters" element="tns:CreationCleExterne"/>
    </wsdl:message>
    <wsdl:message name="IClesExternes_CreationCleExterne_OutputMessage">
    <wsdl:part name="parameters" element="tns:CreationCleExterneResponse"/>
    </wsdl:message>
    <wsdl:portType name="IClesExternes">
    <wsdl:operation name="GetCleExterne">
    <wsdl:input wsaw:Action="http://tempuri.org/IClesExternes/GetCleExterne" message="tns:IClesExternes_GetCleExterne_InputMessage"/>
    <wsdl:output wsaw:Action="http://tempuri.org/IClesExternes/GetCleExterneResponse" message="tns:IClesExternes_GetCleExterne_OutputMessage"/>
    </wsdl:operation>
    <wsdl:operation name="MiseAJourCleExterne">
    <wsdl:input wsaw:Action="http://tempuri.org/IClesExternes/MiseAJourCleExterne" message="tns:IClesExternes_MiseAJourCleExterne_InputMessage"/>
    <wsdl:output wsaw:Action="http://tempuri.org/IClesExternes/MiseAJourCleExterneResponse" message="tns:IClesExternes_MiseAJourCleExterne_OutputMessage"/>
    </wsdl:operation>
    <wsdl:operation name="SuppressionCleExterne">
    <wsdl:input wsaw:Action="http://tempuri.org/IClesExternes/SuppressionCleExterne" message="tns:IClesExternes_SuppressionCleExterne_InputMessage"/>
    <wsdl:output wsaw:Action="http://tempuri.org/IClesExternes/SuppressionCleExterneResponse" message="tns:IClesExternes_SuppressionCleExterne_OutputMessage"/>
    </wsdl:operation>
    <wsdl:operation name="CreationCleExterne">
    <wsdl:input wsaw:Action="http://tempuri.org/IClesExternes/CreationCleExterne" message="tns:IClesExternes_CreationCleExterne_InputMessage"/>
    <wsdl:output wsaw:Action="http://tempuri.org/IClesExternes/CreationCleExterneResponse" message="tns:IClesExternes_CreationCleExterne_OutputMessage"/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="BasicHttpBinding_IClesExternes" type="tns:IClesExternes">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="GetCleExterne">
    <soap:operation soapAction="http://tempuri.org/IClesExternes/GetCleExterne" style="document"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="MiseAJourCleExterne">
    <soap:operation soapAction="http://tempuri.org/IClesExternes/MiseAJourCleExterne" style="document"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="SuppressionCleExterne">
    <soap:operation soapAction="http://tempuri.org/IClesExternes/SuppressionCleExterne" style="document"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="CreationCleExterne">
    <soap:operation soapAction="http://tempuri.org/IClesExternes/CreationCleExterne" style="document"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="ClesExternes">
    <wsdl:port name="BasicHttpBinding_IClesExternes" binding="tns:BasicHttpBinding_IClesExternes">
    <soap:address location=""/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>

    La méthode qui nous intéresse vraiment est CreationCleExterne

    la requête de cette méthode, dans SoapUI :

    Code XML : 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
    <soapenv:Envelope xmlns:soapenv="" xmlns:tem="" xmlns:ody="" xmlns:ody1="">
       <soapenv:Header/>
       <soapenv:Body>
          <tem:CreationCleExterne>
             <!--Optional:-->
             <tem:cleExterne>
                <!--Optional:-->
                <ody:Authentication>
                   <!--Optional:-->
                   <ody:Password>?</ody:Password>
                   <!--Optional:-->
                   <ody:SID>?</ody:SID>
                   <!--Optional:-->
                   <ody:Token>?</ody:Token>
                   <!--Optional:-->
                   <ody:User>?</ody:User>
                   <!--Optional:-->
                   <ody:UserAD>?</ody:UserAD>
                </ody:Authentication>
                <!--Optional:-->
                <ody1:Application>?</ody1:Application>
                <!--Optional:-->
                <ody1:CleEntite>?</ody1:CleEntite>
                <!--Optional:-->
                <ody1:CleExterne>?</ody1:CleExterne>
                <!--Optional:-->
                <ody1:TypeEntite>?</ody1:TypeEntite>
             </tem:cleExterne>
          </tem:CreationCleExterne>
       </soapenv:Body>
    </soapenv:Envelope>

    Jusque là tout va bien.
    L'éditeur du progiciel, celui qui a mis en place le wsdl nous affirme qu'il n'y a, pour le moment pas besoin d'identification.
    Les seuls arguments nécessaires sont Application, TypeEntite, CleEntite et CleExterne. Les deux premiers sont fixes, CleEntité est une valeur qui nous permettra de retrouver une personne dans le progiciel et CleExterne est une valeur que l'on insère dans le progiciel (depuis un autre).

    Sur SoapUI, la requête suivante marche très bien

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <soapenv:Body>
    <tem:CreationCleExterne>
    <tem:cleExterne>
    <ody1:Application>HR</ody1:Application>
    <ody1:CleEntite>147</ody1:CleEntite>
    <ody1:CleExterne>99999</ody1:CleExterne>
    <ody1:TypeEntite>0</ody1:TypeEntite>
    </tem:cleExterne>
    </tem:CreationCleExterne>
    </soapenv:Body>

    Mais sur talend, erreur !

    Nom : Capture2.JPG
Affichages : 116
Taille : 73,5 Ko

    avec comme erreur :
    Exception in component tWebServiceInput_2
    java.lang.RuntimeException: Need 1 arguments!!!
    at org.talend.DynamicInvoker.invokeMethod(DynamicInvoker.java:323)
    at org.talend.DynamicInvoker.main(DynamicInvoker.java:189)
    at org.talend.DynamicInvoker.main(DynamicInvoker.java:130)
    at webservice.temp_0_1.temp.tWebServiceInput_2Process(temp.java:583)
    at webservice.temp_0_1.temp.runJobInTOS(temp.java:1063)
    at webservice.temp_0_1.temp.main(temp.java:819)
    Je crois comprendre qu'il ne nécessite qu'un seul argument du coup et, c'est vrai, lorsque je regarde la structure de la requête sur SoapUI, les arguments sont derrière une autre balise tem.
    Mon problème du coup réside dans l'écriture de ces arguments dans les paramètres du composant talend. J'ai essayé de l’écrire dans une seul ligne, mais je ne vois pas bien comment.
    Autre problème que je me pose en amont également, c'est que je n'ai pas à remplir tous les arguments, du coup je me demande comment Talend va arriver à matcher ce que je vais lui donner avec ce que ça correspond réellement.

    Je n'y connais franchement pas grand chose en webservice, il est donc possible que je n'ai pas tout bien expliqué, n’hésitez pas à me demander si besoin.

    Merci par avance !

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Je marque ce post comme résolu car j'ai finalement trouvé un moyen de contourner mon problème en passant par une insertion de code java. De plus, la vraie solution serait de mettre Talend à jour mais bon

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

Discussions similaires

  1. job talend webservice --> Base de Données : problème espaces
    Par lauwIchigo dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 22/05/2017, 14h18
  2. Appel webservice Talend - plusieurs valeurs
    Par bonovice01 dans le forum Talend
    Réponses: 0
    Dernier message: 29/08/2016, 14h15
  3. [Talend Open Studio] Connexion à Navision 2009 via WebService
    Par hdadi dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 26/10/2015, 12h33
  4. TALEND et webservice de Magento
    Par bouty26 dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 13/09/2013, 21h25
  5. passage de paramètre à des webservice Talend
    Par wawanito dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 22/05/2009, 11h55

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