Posto il messaggio in questa sezione sperando che sia il posto corretto.
Premetto che è un po' lungo in quanto ho inserito anche un esempio.
Sto sviluppando una serie di servizi che vorrei mettere a disposizione
via web utilizzando il protocollo SOAP.
I servizi li sto sviluppando con una DLL ActiveX in Vb6 sul mio Server.
Quindi, attraverso il SOAP, il server client effettuerà una chiamata
al mio server e potrà utilizzare i metodi che andrò a rendere disponibili.
Fin qui la teoria; ora il mio problema.
Ho realizzato una classe con 2 metodi ed una variabile Private; il primo metodo
fa una serie di controlli che se a buon fine impostano il valore nella variabile
Private. Il secondo metodo verifica se la variabile Private è valorizzata ed esegue
una serie di operazioni.
Il problema è che sembra non sia possibile creare un oggetto in SOAP e mantenerlo
attivo per le successive chiamate; ovvero il primo metodo valida il dato e lo salva
nella variabile Private ma il secondo non riesce a leggere il dato in quanto l'oggetto
sembra che ogni volta venga ricreato (Quindi la variabile è vuota).
Cerco di spiegarmi meglio con un esempio.IL server ha 2 metodi
- ControllaTitolo : Valida il titolo e lo memorizza nella variabile strTitolo
- Scrivi : Verifica se il titolo è presente. Se si scrive
Il client imposta il titolo con il metodo "ControllaTitolo" e quindi scrive con "Scrivi"
Non riesco a far scrivere il client in quanto il titolo è vuoto (Come se l'oggetto venisse distrutto ogni volta)
================================================== ==
SERVER
Private strTitolo as string
Public Function ControllaTitolo(Byval Titolo as string) as boolean
' Controlli; se ok...
if ... Then
strTitolo = Titolo
ControllaTitolo = True
end if
end Function
Public Function Scrivi(byval Testo as string) as boolean
if strTitolo = "" then
exit function
end if
' Scrivi...
End Function
================================================== ==
CLIENT
Dim soapClient3
dim booScrivi
set soapclient3 = CreateObject("MSSOAP.SoapClient30")
Call SoapClient3.mssoapinit("ClasseServer.wsdl", "ClasseServer", "ProgettoSoapPort")
SoapClient3.ControllaTitolo("Alice")
booScrivi = SoapClient3.Scrivi("C'era una volta...")
if booScrivi = false then
MsgBox "Errore !!!"
end if