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