2013-03-22 18 views
7

Voglio testare il mio ServletContextListener con il molo incorporato. Chiama contextDestroyed sull'arresto del server ma non chiama contextInitialized all'avvio del server. Come posso ripararlo?Utilizzo di ServletContextListener con Jetty

Server server = new Server(PORT); 
ServletContextListener myListener = ...; 
WebAppContext webapp = new WebAppContext(); 
webapp.addEventListener(myListener); 
webapp.setServer(server); 
server.setHandler(webapp); 
server.start(); -> doesnt call myListener.contextInitialized() 

server.stop(); -> call myListener.contextDestroyed() 
+0

Hai provato l'impostazione del percorso di contesto (e facoltativamente una guerra): 'webapp.setContextPath ("/"); webapp.setWar (warURL); '). In caso contrario, nessun contesto è * realmente * implementato –

+0

@BGR setContextPath ("/") non ha aiutato. Non ho alcun file web.xml. –

+0

@BGR, ma myListener.contextDestroyed() funziona come progettato. –

risposta

1

ho avuto un problema simile con Jetty 9.3.10

Hai provato impostando tipi ascoltatore estesi a true? Se è impostato su false (impostazione predefinita), le implementazioni ServletContextListener non sarà considerato in org.eclipse.jetty.server.handler.ContextHandler.Context#checkListener

webapp.getServletContext().setExtendedListenerTypes(true); 
Problemi correlati