2013-03-22 50 views
7

我想用嵌入式jetty测试我的ServletContextListener。它在服务器停止时调用contextDestroyed,但在服务器启动时不调用contextInitialized。我该如何解决它?在Jetty中使用ServletContextListener

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

认为你有没有尝试设置上下文路径(和可选的战争):'webapp.setContextPath(“/”); webapp.setWar(warURL);')。如果没有,没有上下文*真的*部署 – 2013-03-22 16:06:14

+0

@BGR setContextPath(“/”)没有帮助。我没有任何web.xml文件。 – 2013-03-22 16:09:59

+0

@BGR,但myListener.contextDestroyed()按设计工作。 – 2013-03-22 16:10:16

回答

1

我和码头有类似的问题9.3.10

你试过扩展监听器类型设置为true? 如果设置为false(默认值),实现的ServletContextListener不会在org.eclipse.jetty.server.handler.ContextHandler.Context#checkListener

webapp.getServletContext().setExtendedListenerTypes(true); 
相关问题