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

Delphi .NET Discussion :

Passage de paramètres à un web service


Sujet :

Delphi .NET

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 42
    Points
    42
    Par défaut Passage de paramètres à un web service
    Bonjour!
    J'ai développé un web service qui doit me générer un fichier .doc en fonction des paramétres que je lui passe.
    Mon probleme c'est que j'ai énormémant de paramétres a passer. J'ai essayer de les passer sous forme d'objet mais ca ne marche pas.

    Voici un test que j'ai fait:
    J'ai une unite test.pas qui contient une classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      TTest =  class (TObject)
      private
        FMessage   : string;
      published
        property lmessage   : string read FMessage    write FMessage;
      end;
    Dans l'unité UTestIntf j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      ITest = interface(IInvokable)
      ['{F319CD9B-CE44-4134-B01E-8680473A8A28}']
        function Message(p_test    : TTest) :string; stdcall;
      end;
    Ensuite dans l'unité UTestImpl j'ai :
    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
     
      TTest = class(TInvokableClass, IViewReport)
      public
        function Message(p_test : TTest) :string; stdcall;
      end;
     
    implementation
     
    function TTest.Message(p_test : TTest): string;
    begin
      Result :=  p_test.lmessage;
    end;
     
    initialization
      { Les classes invocables doivent être recensées }
      InvRegistry.RegisterInvokableClass(TTest);
     
    end.
    Ensuite du coté de mon client, mon wsdl ma bien importé ma classe Test.
    Donc je crée un objet test1 que je paramétre (test1.lmessage = 'coucou')
    et j'appel la fonction Message.

    Ca me déclenche cette erreur : Le projet a provoqué une classe d'exception ERemotableException avec le message "violation d'acces a l'adresse 0000000E."


    Lorsque je remplace le paramétre par un string, la ca marche.


    Mes questions :
    Peut-on passer des classes en paramétres?
    Si oui comment?

    merci

  2. #2
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Points : 42
    Points
    42
    Par défaut
    Bonjour.
    A force de recherche, j'ai trouvé la solution à mon probléme.
    En faite, il faut dériver les classes de TRemotable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     MaClasse = class (TRemotable)
    ...

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

Discussions similaires

  1. Paramètres appel web service
    Par Air P-E dans le forum Services Web
    Réponses: 2
    Dernier message: 23/07/2010, 15h52
  2. Réponses: 1
    Dernier message: 11/05/2009, 17h06
  3. [AXIS2] Passage de paramètres à un web service via URL
    Par evenl dans le forum Services Web
    Réponses: 1
    Dernier message: 28/04/2009, 12h30
  4. passage de paramètres entre web user control
    Par mi1StagiR dans le forum ASP.NET
    Réponses: 5
    Dernier message: 20/05/2008, 12h17
  5. Passage de paramètres pour Reporting services
    Par Jé@Zoom dans le forum ASP.NET
    Réponses: 6
    Dernier message: 27/04/2007, 16h58

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