Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497

    Classi, Soap, sessioni e strani warning

    Ciao a tutti sto sviluppando un sistema di interfacciamento ad un server soap.

    Nella parte "client" che devo sviluppare ho dovuto procedere in questo modo

    1) Creata una classe per gestire il soap client e le informazioni di login
    2) Creata pagina index di test
    3) Creato nella pagina index l'oggetto che si occupa della connessione, del login e dell'esecuzione delle soap request

    Fin qua tutto apposto.
    Per ridurre i tempi di accesso al server soap ed evitare qundi di dover effettuare un login ogni volta che la pagina viene caricata ho deciso di salvare in sessione tale oggetto in modo che una volta creato e configurato esso venga salvato nella sessione corrente.

    A questo punto un semplice controllo recupera tale oggetto salvato in sessione senza quindi dover effettuare nuovamente il login sul server soap.
    Questo e' consentito in quanto dopo il primo login il server soap mi invia i dati della sessione.
    Tali dati vengono quindi integrati nelle successive request. Quindi era inutile rieffettuare costantemente il login.

    E come sopra fin qua tutto apposto.

    Il problema va a generarsi quando, una volta recuperato l'oggetto dalla sessione, gli faccio eseguire le soap request usando il metodo __doRequest( string $request , string $location , string $action , int $version ).

    Non capisco perche' la prima volta che eseguo il codice e' tutto apposto, invece quando lo rieseguo estraendo l'oggetto dalla sessione mi lancia questo warning :
    Warning: SoapClient::__doRequest(): supplied argument is not a valid stream resource in ...

    Ho stampato preventivamente sia la stringa di request ed e' la stassa della prima invocazione.
    Il resto di parametri sono tutti uguali, solo mi appare questo warning e poi mi stampa i dati come se niente fosse.
    Il fatto e' che e' un semplice warning e lo posso piallare con error_reporting.
    Quello che mi da fastidio e' che non deve succedere questa cosa e non capisco perche', in fin dei conti l'oggetto non viene modificato, nn usa variabili globali o altre cose ma si tiene tutto salvato negli attributi interni. Ma da costantemente quel warning quando lancio le request dopo aver scaricato l'oggetto dalla sessione, se invece lo creo e poi faccio le request allora e' tutto apposto.

    Per scrupolo ho pure fatto un test, ossia ho creato l'oggetto l'ho messo in sessione e l'ho scaricato dalla sessione in un'altra var, quindi eseguo le request e va tutto apposto. Non capisco perche' va a generarsi quel warning.

    Avete qlke idea del perche'?

    Sta cosa mi sta facendo uscire pazzo

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Cioè tu vorresti salvare in sessione la connessione a un server remoto?

  3. #3
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    No aspetta nn e' cosi' semplice.

    So che dovrei usare curl o qlke altra tecnica per gestire le connessioni remote.
    Io uso soap perche' i web services a cui devo accedere stanno su server soap.

    L'oggetto in questione crea e si salva internamente il soap Client.
    Salva i dati spediti a tempo di connessione e login.

    Fornisce una serie di metodi per la gestione delle request.
    Tenere su una connessione non e' fattibile lo so bene perche' la connessione e' qlkosa di persistente, mentre tutte le connessioni a server web / server soap sono connessioni non persistenti, intendo vengono aperte, autenticate quindi attendono la request ( entro un certo tempo) una volta arrivata la request la analizzano e quindi eseguono quello che devono fare, forgiano la response e ti inviano i dati. A questo punto la connessione viene chiusa e buonanotte.

    Per questo essitono le sessioni per mantenere la persistenza dei dati senno nn potrebbero esistere le webapp come le conosciamo.

    Il mio problema e' il warning generato dal metodo __doRequest(...) della classe soap che nn capisco perche' viene lanciato quando ricarico la pagina e scarico l'oggetto dalla sessione.

    ....

    Pero' ..... mi ci fai pensare forse e' proprio un errore di connessione. Cioe' devo riavviare il client ..... mmm strano perche' poi la request viene eseguita comunque ...
    Faro' questo test forse il prob sta la'. Mo vedo.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.