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 Discussion :

Création d'un WebService WCF depuis un fichier WSDL


Sujet :

Services Web

  1. #1
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut Création d'un WebService WCF depuis un fichier WSDL
    Bonjour,

    Je dois récupérer des infos depuis Oracle CRM OnDemand, grâce à leurs Web Services (SOAP). J'arrive à me connecter à l'url sécurisé pour obtenir le SessionID et le cookie.

    Ensuite le problème c'est qu'Oracle ne fournit pour chaque Web Service, qu'un simple fichier WSDL, et je n'arrive pas à en faire quelque chose d'utilisable.

    J'ai cherché sur Internet, et je trouve des articles montrant comment utiliser l'outil en ligne de commande svcutil.exe, qui permet de générer l'interface du WebService.

    Je me retrouve donc avec un fichier "Opportunity_WS_10.wsdl", un fichier "Opportunity.cs" et un fichier "output.config".

    Le fichier "Opportunity.cs" contient l'interface suivante :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace="urn:crmondemand/ws/opportunity/10/2004", ConfigurationName="Default_Binding_Opportunity")]
    public interface Default_Binding_Opportunity
    {
     
        // CODEGEN: Generating message contract since the operation OpportunityUpdate is neither RPC nor document wrapped.
        [System.ServiceModel.OperationContractAttribute(Action="document/urn:crmondemand/ws/opportunity/10/2004:OpportunityUpdate", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute()]
        OpportunityUpdateResponse OpportunityUpdate(OpportunityUpdateRequest request);
     
        // CODEGEN: Generating message contract since the operation OpportunityUpdateChild is neither RPC nor document wrapped.
        [System.ServiceModel.OperationContractAttribute(Action="document/urn:crmondemand/ws/opportunity/10/2004:OpportunityUpdateChild", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute()]
        OpportunityUpdateChildResponse OpportunityUpdateChild(OpportunityUpdateChildRequest request);
     
        // CODEGEN: Generating message contract since the operation OpportunityDeleteChild is neither RPC nor document wrapped.
        [System.ServiceModel.OperationContractAttribute(Action="document/urn:crmondemand/ws/opportunity/10/2004:OpportunityDeleteChild", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute()]
        OpportunityDeleteChildResponse OpportunityDeleteChild(OpportunityDeleteChildRequest request);
     
        // CODEGEN: Generating message contract since the operation OpportunityInsert is neither RPC nor document wrapped.
        [System.ServiceModel.OperationContractAttribute(Action="document/urn:crmondemand/ws/opportunity/10/2004:OpportunityInsert", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute()]
        OpportunityInsertResponse OpportunityInsert(OpportunityInsertRequest request);
     
        // CODEGEN: Generating message contract since the operation OpportunityQueryPage is neither RPC nor document wrapped.
        [System.ServiceModel.OperationContractAttribute(Action="document/urn:crmondemand/ws/opportunity/10/2004:OpportunityQueryPage", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute()]
        OpportunityQueryPageResponse OpportunityQueryPage(OpportunityQueryPageRequest request);
     
        // CODEGEN: Generating message contract since the operation OpportunityInsertOrUpdate is neither RPC nor document wrapped.
        [System.ServiceModel.OperationContractAttribute(Action="document/urn:crmondemand/ws/opportunity/10/2004:OpportunityInsertOrUpdate", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute()]
        OpportunityInsertOrUpdateResponse OpportunityInsertOrUpdate(OpportunityInsertOrUpdateRequest request);
     
        // CODEGEN: Generating message contract since the operation OpportunityDelete is neither RPC nor document wrapped.
        [System.ServiceModel.OperationContractAttribute(Action="document/urn:crmondemand/ws/opportunity/10/2004:OpportunityDelete", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute()]
        OpportunityDeleteResponse OpportunityDelete(OpportunityDeleteRequest request);
     
        // CODEGEN: Generating message contract since the operation OpportunityInsertChild is neither RPC nor document wrapped.
        [System.ServiceModel.OperationContractAttribute(Action="document/urn:crmondemand/ws/opportunity/10/2004:OpportunityInsertChild", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute()]
        OpportunityInsertChildResponse OpportunityInsertChild(OpportunityInsertChildRequest request);
    }
    Ainsi que diverses classes, telles que :

    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
     
    [System.CodeDom.Compiler.GeneratedCodeAttribute("svcutil", "4.0.30319.1")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:crmondemand/ws/opportunity/10/2004")]
    public partial class OpportunityWS_OpportunityUpdate_Input
    {
    ...
    }
     
    [System.CodeDom.Compiler.GeneratedCodeAttribute("svcutil", "4.0.30319.1")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:crmondemand/ws/opportunity/10/2004")]
    public partial class OpportunityWS_OpportunityQueryPage_Input
    {
    ...
    }
    Etc.

    Ma question est donc de savoir comment faire pour la suite ? Qu'est-ce que je dois faire de cette interface ? Comment communiquer avec le WebService d'Oracle ?

    Merci par avance pour votre aide.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Bon après quelques recherches supplémentaires, j'ai fini par trouver !

    J'ai utilisé la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wsdl.exe MonFichier.wsdl
    alors qu'auparavant j'utilisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wsdl.exe MonFichier.wsdl /serverInterface
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Essaye un truc dans le genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ChannelFactory<Default_Binding_Opportunity> factory =
                new ChannelFactory<Default_Binding_Opportunity>("ConfigClientService");
     
            Default_Binding_Opportunity channel = factory.CreateChannel();
     
            channel.MaMethode();
    ConfigClientService étant le nom de la section dans le fichier de config qui correspond à ton service (dans le output.config je suppose).
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Arff on s'est croisés The_badger_man.

    Je n'ai pas testé ton code, mais je viens de trouver la solution, je pense que j'avais généré la mauvaise interface (il me fallait celle du client et non du serveur).

    Merci quand même
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Tu as trouvé tout seul
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  6. #6
    Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Quelle commande (et options) a tu utiliser pour générer l'interface serveur ?

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

Discussions similaires

  1. Création d'une base SQLite depuis un fichier xml
    Par aruno14 dans le forum Android
    Réponses: 4
    Dernier message: 22/02/2015, 05h56
  2. Web service depuis un fichier wsdl
    Par pere_noel00 dans le forum Services Web
    Réponses: 1
    Dernier message: 10/07/2009, 15h27
  3. Création d'un bitmap depuis un fichier bmp
    Par Tyu38 dans le forum Débuter
    Réponses: 14
    Dernier message: 04/06/2008, 13h08
  4. [Débutant] Généré le client depuis un fichier WSDL
    Par chronos dans le forum Services Web
    Réponses: 6
    Dernier message: 02/08/2007, 12h01
  5. Réponses: 2
    Dernier message: 24/03/2007, 12h11

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