1 pièce(s) jointe(s)
WebService / Soap / XmlError
Bonjour à tous,
Je reprends un projet débuté il y a quelques années pour mettre en oeuvre des améliorations. L'application est basée sur l'usage de HttpRio créé dynamiquement (sous Delphi Tokyo/VCL/Windows7).
Dans le code suivant,
fgetAllPhysicalIos et fgetAllPhysicalIosResponse sont déclarés et riServer2 est un serviceWeb crée à partir d'une entité WSDL.
Code:
1 2 3 4 5 6 7 8 9 10
|
fgetAllPhysicalIos := getAllPhysicalIos.create;
try
try
(riServer2 as ISOAPHeaders).Send(riEnteteId);
fgetAllPhysicalIosResponse := riServer2.getAllPhysicalIos (fgetAllPhysicalIos);
except
on E: EXMLDocError do
begin
... |
avec
Code:
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
|
getAllPhysicalIos = class(TRemotable)
private
public
constructor Create; override;
published
end;
getAllPhysicalIosResponse = class(TRemotable)
private
Fdata: MimeData;
public
constructor Create; override;
destructor Destroy; override;
published
property data: MimeData Index (IS_UNQL) read Fdata write Fdata;
end;
et
MimeData = class(TRemotable)
private
FcontentType: contentType;
FcontentType_Specified: boolean;
Fdata: TByteDynArray;
procedure SetcontentType(Index: Integer; const AcontentType: contentType);
function contentType_Specified(Index: Integer): boolean;
published
property contentType: contentType Index (IS_ATTR or IS_OPTN) read FcontentType write SetcontentType stored contentType_Specified;
property data: TByteDynArray Index (IS_UNQL) read Fdata write Fdata;
end; |
Au moment de l'appel de getAllPhysicalIos j'ai systématiquement le défaut
EXMLDocError : L'élément "data" ne contient pas un noeud texte unique alors que la réponse (stream) est correct et complète.
et une fuite mémoire liée à la non destruction certains objets (getPhysicalIoResponse et le Mimedata) :
Pièce jointe 476169
Je ne trouve pas de solution gérer le MimeData (probablement la cause du défaut et de la fuite mémoire).
Merci pour votre aide,