Hallo,
ich programmiere an einem Webservice (
SOAP Server Anwendung, CGI) in Delphi 7 (Enterprise) und habe leider ein richtig großes Problem:
In dem Webservice habe ich eine Klasse, die über ein Interface von außen abrufbar ist. Jetzt kann ich auch problemlos die einzelnen Funktionen der Klasse über php oder über delphi (Webservice Client) aufrufen.
Nur funktioniert das
OOP Konzept nicht so ganz
-- ich bin absoluter newbie in sachen webservice, daher kann es auch gut sein, dass ich da vielleicht was falsch verstanden habe...
Ich skizzier mal das Grundkonzept was ich habe (ist jetzt mehr Pseudo Code, der ganze Code würde etwas unübersichtlich werden)
Delphi-Quellcode:
TClassA = class
FClassB : TClassB;
function Init;
function Work;
end;
...
function TClassA.Init;
begin
FClassB := TClassB.Create;
end;
function TClassA.Work;
begin
FClassB.xyz;
end;
Die Klasse TClassA ist über ein Interface nach außen hin aufrufbar - funktioniert auch an sich. Jetzt ist mein Problem, dass wenn ich die Funktion "Init" aufrufe, wird ja eine weitere Klasse erstellt und in der Klasse TClassA in der Variable FClassB gespeichert. Wenn ich jetzt erst "Init" und dann "Work" aufrufe, dann ist die Variable FClassB in der Funktion "Work" nicht mehr zugewiese, also sprich = nil.
Ich hab schon alles mögliche getestet um sicher zu gehen, dass FClassB vorher schon mal ungleich nil war und bin immer zu dem Ergebnis gekommen, dass der Webservice intern richtig arbeitet. Ich hab das Gefühl, als würde bei jedem Funktionsaufruf von außen die ganze Klasse des Webservices neu erstellt werden, bzw. die vorherigen Daten nicht mehr vorhanden sein.
Habt ihr eine Ahnung woran das liegen könnte? Oder ist das generell gar nicht möglich "wirklich" mit Klassen in Webservices zu arbeiten?
Vielen Dank im Vorraus,
DCoder