Java 将ServletContextListener与Jetty一起使用

Java 将ServletContextListener与Jetty一起使用,java,jetty,servlet-3.0,Java,Jetty,Servlet 3.0,我想用嵌入式jetty测试我的ServletContextListener。它在服务器停止时调用contextdestromed,但在服务器启动时不调用contextInitialized。我怎样才能修好它 Server server = new Server(PORT); ServletContextListener myListener = ...; WebAppContext webapp = new WebAppContext(); webapp.addEventListener(myL

我想用嵌入式jetty测试我的ServletContextListener。它在服务器停止时调用
contextdestromed
,但在服务器启动时不调用
contextInitialized
。我怎样才能修好它

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()

我对Jetty 9.3.10也有类似的问题

您是否尝试过将扩展侦听器类型设置为true? 如果设置为false(默认值),则在
org.eclipse.jetty.server.handler.ContextHandler.Context#checkListener

    webapp.getServletContext().setExtendedListenerTypes(true);

您是否尝试过设置上下文路径(以及可选的war):
webapp.setContextPath(“/”;webapp.setWar(warURL))。如果不是,就没有真正意义上的上下文deployed@BGRsetContextPath(“/”)没有帮助。我没有任何web.xml文件。@BGR,但myListener.contextDestroyed()按设计工作。如果在web.xml文件中定义myListener,它工作吗?i、 e.使用
WebAppContext webapp=new WebAppContext(路径“/”
代替webapp.addeventListener