Post

Visualizzazione dei post con l'etichetta Application Scope

Abilitazione Cross Application Scope in Tomcat per condivisione dati tra webapp

DOMANDA: Come posso condividere dati tra diverse webapp utilizzando l'Application Scope? RISPOSTA: Di default l' Application Scope è utilizzato per memorizzare oggetti a livello di web application. Questo livello di scope è il più alto rispetto ai classici scope di Request e Session Nome Scope Durata Request Singola richiesta, verso il server Fino a quando la risposta non viene inviata al client Session Tutte le richieste inviate dallo stesso browser Fino a quando non scade il timeout della sessione o l'ID di sessione non viene invalidato (ad es. chiusura del browser) Application Tutte le richieste inviate a una stessa Web Application Container Per poter recuperare un oggetto memorizzato a livello di Application Scope è necessario utilizzare il ServletContext . Se vogliamo recuperare un oggetto memorizzato nell'Application Scope della WebAppA dalla WebAppB è necessario fare attenzione ai seguenti

ClassCastException con oggetto in ClassLoader diversi

Immagine
DOMANDA: Perchè ricevo un errore di ClassCastException se dalla mia webapp recupero lo stesso oggetto creato da un'altra webapp? RISPOSTA: Di solito questo errore si verifica quando stiamo utilizzando un oggetto in due class loader diversi . Ad esempio ho una webapp A che utilizza un oggetto X del jar X.jar presente nella sua WEB-INF/lib . Decido di recuperare l'oggetto X dalla webapp B che avrà anch'essa nella sua WEB-INF/lib il jar X.jar . In questo caso è vero che l'oggetto X è lo stesso ma viene caricato sia nel class loader di A che in quello di B. Ciò comporta la generazione di un errore di ClassCastException quando si tenta di recuperare l'oggetto X da B. Per ovviare facilmente a questo errore si potrebbe decidere di inserire il jar X.jar in un class loader condiviso tra le due webapp A e B (ad esempio il class loader dell'Application Server). Una soluzione più elegante, che offre una serie di vantaggi e rispetta le tecniche d