2013-03-22 9 views
7

Ich möchte meinen ServletContextListener mit eingebetteter Anlegestelle testen. Es ruft contextDestroyed auf Server stop aber contextInitialized auf Serverstart nicht auf. Wie kann ich es reparieren?Verwenden von ServletContextListener mit 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

in org.eclipse.jetty.server.handler.ContextHandler.Context#checkListener nicht berücksichtigt werden Haben Sie den Kontextpfad versucht Einstellung (und optional einen Krieg): 'webapp.setContextPath ("/"); webapp.setWar (warURL); '). Wenn nicht, wird kein Kontext * wirklich * bereitgestellt –

+0

@BGR setContextPath ("/") hat nicht geholfen. Ich habe keine web.xml Datei. –

+0

@BGR, aber myListener.contextDestroyed() funktioniert wie vorgesehen. –

Antwort

1

Ich hatte ein ähnliches Problem mit Jetty 9.3.10

Haben Sie versucht, auf true erweiterten Zuhörer Typen einstellen? Wenn es auf false (Standard) gesetzt ist, ServletContextListener Implementierungen

webapp.getServletContext().setExtendedListenerTypes(true);