Einzelnen Beitrag anzeigen

LuckySpacy

Registriert seit: 2. Apr 2003
Ort: Fränkisch-Crumbach
50 Beiträge
 
Delphi 10.4 Sydney
 
#1

Bugs in den Webservices von Delphi ?

  Alt 6. Sep 2006, 10:05
Ich beschäftige mich jetzt zum ersten mal mit den Webservices in Delphi.
Dabei habe ich eine wsdl-Datei bekommen, die ich in Delphi importiert habe.
Nachdem ich alles soweit hatte und den ersten Test gemacht habe, flog mir das Delphi-Programm um
die Ohren.

Meldung :
Zugriffsverletzung bei Adresse 00492069 in Modul 'WS_Test.exe'. Lesen von Adresse 00000000.

Nach langem suchen und debuggen bin ich auf das Problem gestoßen.
Und zwar ist eines der Rückgabe folgende:
<shipmentDate xsi:nil="true" xmlns="http://....." />

Hier wird ein Datumswert erwartet, der unter anderem so aussehen könnte:
<shipmentDate xmlns="http://.....">2006-04-16T09:02:50.665Z</shipmentDate>

Da aber nil übergeben wird, bekomme ich eine exception in xsBuiltIns.pas
Delphi-Quellcode:
procedure TXSDateTime.XSToNative(Value: WideString);
var
  BaseDate: TXSBaseDateTime;
begin
  BaseDate := GetBaseDateTime(Value); // <-- Hier entsteht die exception, da Value = '' ist
  try
    FDateTime := Value;
  finally
    BaseDate.Free;
  end;
end;
Das ist Problemnummer 1

Hier das zweite Problem:
Es werden auch boolsche Werte übergeben.
Nach dem importieren der wsdl-Datei hat Delphi mir eigenständig ein Objekt generiert.
Unter anderem hat Delphi folgenden Eintrag gemacht:
property rueckrufAktion: Boolean read FrueckrufAktion write FrueckrufAktion;

Die Rückgabe in der Form eines xml-Doc sieht so aus:
<rueckrufAktion xmlns="http://....">0</rueckrufAktion>

Hier kommt es ebenfalls zu einer Fehlermeldung:
Ungültiges Eigenschaftselement: 0

Ändere ich den von Delphi generierten Code in
property rueckrufAktion: WideString read FrueckrufAktion write FrueckrufAktion;
um, dann kann ich ohne Fehler den Wert auslesen.

Meine Fragen:
Warum generiert mir Delphi eine boolsche Variable, wenn es beim Füllen zu einer Fehlermeldung führt?
Handelt es sich hierbei um einen Bug?

Was mache ich mit der Umsetzung des Datumswertes?
Ist es ein Fehler in Delphi?
Hat jemand schon das Problem gehabt?
Wie wurde das Problem gelöst?
Thomas Bachmann
  Mit Zitat antworten Zitat