Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    89

    Utilizzo servizio via SOAP in VB6

    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

  2. #2
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Dovresti utilizzare i tag CODE, infatti il codice è molto difficile
    da leggere.
    In tutti i casi, la funzione del Server Scrivi,ritorna sempre False.

    codice:
    Public Function Scrivi(ByVal Testo as String) as Boolean 
    
    If strTitolo = "" Then 
        Exit Function 
    End If 
    ' Scrivi... 
    ' Ritorna sempre False !!
    
    ' Se riesci a scrivere devi ritornare True !!  
    Scrivi = True   
    End Function
    Se riesci a scrivere devi ritornare True !!

    Ciao,
    Ciao, Brainjar

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    89
    E' vero, ho dimenticato di inserire una riga con
    Scrivi = True
    Per quanto riguarda la difficoltà di lettura non sapevo
    si potessero utilizzare i code; per il futuro cercherò
    di scrivere meglio.
    Per quanto riguarda invece il mio problema mi sapresti
    dare un aiuto ?
    Grazie

  4. #4
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Ricompila il server e riprova, dopo aver fatto le correzioni.
    Dovrebbe bastare.


    Ciao,
    Ciao, Brainjar

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    89
    Se lo utilizzo come normale Client-Server funziona.
    Il problema è quando cerco di utilizzarlo via SOAP che
    non funziona(Sembra ricreare ogni volta l'istanza
    dell'oggetto e quindi mi perde i dati storati nelle variabili
    Private)
    Grazie

  6. #6
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Non conosco il protocollo SOAP.
    Se comunque l'ActiveX è registrata sul Server correttamente non
    dovrebbero esserci problemi.

    Controlla il tipo di istanza creata effettivamente dalla chiamata
    del Client.

    Altro non ti so dire.


    Ciao,
    Ciao, Brainjar

  7. #7
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Hai provato a guardare il SOAP Toolkit fornito da Microsoft?
    http://msdn.microsoft.com/webservice...k/default.aspx

    HTH
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    89
    Si, ho scaricato il toolkit ed ho provato con gli esempi
    ma non mi hanno chiarito molto le idee...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.