Ho letto this ma non capisco come funziona. Voglio caricare un file delle proprietà e configurare il mio pool di connessioni all'avvio della mia applicazione web. Ovviamente voglio farlo solo una volta e in un posto solo così posso cambiarlo se necessario. Con servlet regolari, inserisco semplicemente il mio codice di inizializzazione nel metodo init() del servlet, ma non si ha accesso ad esso con un servlet di Jersey. Quindi dove lo faccio? Come funzionano gli ascoltatori nel link qui sopra?Inizializza database su avvio webapp Jersey
risposta
Tutto ciò che dovete fare è scrivere una classe java che implementa l'interfaccia ServletContextListener. Questa classe deve implementare il metodo contextInitialized di due metodi che viene chiamato quando l'applicazione Web viene creata per la prima volta e contextDestroyed che verrà chiamata quando viene distrutta. La risorsa che si desidera inizializzare verrà creata un'istanza nel contestoMetodo inizializzato e la risorsa liberata nella classe contextDestroyed. L'applicazione deve essere configurata per chiamare questa classe quando viene distribuita, che viene eseguita nel file descrittore web.xml.
public class ServletContextClass implements ServletContextListener
{
public static Connection con;
public void contextInitialized(ServletContextEvent arg0)
{
con.getInstance();
}//end contextInitialized method
public void contextDestroyed(ServletContextEvent arg0)
{
con.close();
}//end constextDestroyed method
}
La configurazione web.xml
<listener>
<listener-class>com.nameofpackage.ServletContextClass</listener-class>
</listener>
Questo ora permetterà l'applicazione chiamare il ServletContextClass quando l'applicazione viene distribuita ed un'istanza della connessione o in qualsiasi altro luogo risorsa nel metodo contextInitialized qualche cosa simile a cosa fa il metodo init di Servlet.
Poiché non è necessario modificare Jersey al momento dell'avvio, probabilmente non si desidera un AbstractResourceModelListener. Quello che vuoi è un javax.servlet.ServletContextListener. Puoi aggiungere elementi listener al tuo web.xml nello stesso modo in cui aggiungi elementi servlet. Il ServletContextListener verrà chiamato quando il contesto (applicazione web) viene creato per la prima volta e prima dell'avvio del servlet di Jersey. Puoi fare tutto ciò che è necessario al database in questo listener e sarà pronto quando inizierai a utilizzare Jersey.
- 1. Rails inizializza estremamente lento su ruby 1.9.1
- 2. Controllo dello stato di avvio della primavera sulla webapp esistente
- 3. Immagine di avvio in webapp per il display Retina?
- 4. Tomcat - avvio di webapp in un ordine specifico
- 5. Avvio dell'applicazione da un database
- 6. Inizializza boost :: shared_ptr su NULL
- 7. Weblogic: disabilita scansione jersey
- 8. Jersey di avvio a molla: consentire a Jersey di servire contenuto statico
- 9. Installa webapp su homescreen su iPhone?
- 10. Jersey consuma JSON su POST
- 11. Client Jersey su Android - NullPointerException
- 12. Autenticazione utente su un servizio REST Jersey
- 13. Avvio di VM Vagrant su avvio host
- 14. Python SWIG inizializza un puntatore su NULL
- 15. Ottimizzazione della produzione della sessione di nhibere, il tempo di avvio della webApp è molto lento
- 16. Avvio di thin server su porte diverse
- 17. Come si associa un sottodominio a una webapp su Tomcat 6 (inclusa la webapp di root)?
- 18. JAX-RS senza jersey su WAS7
- 19. Filtro richiesta jersey solo su alcuni URI
- 20. Jersey: Controllo cache predefinito su no-cache
- 21. cache WebApp per iPhone
- 22. TCompressionStream inizializza con dati
- 23. Inizializza NSArray con dimensione
- 24. Scala - Inizializza ambiente REPL
- 25. In che modo una webapp inoltra a un'altra webapp?
- 26. Inizializza le preferenze da XML nell'attività principale
- 27. C#: inizializza un array DateTime
- 28. Unittesting webapp cherrypy
- 29. javascript webapp development
- 30. Dispensare manualmente OWIN WebApp