以编程方式将HttpSessionListener添加到Jetty不起作用

问题描述:

我正在使用嵌入式Jetty 9并尝试使用ServletContext.addListener(T)从我的Servlet.init()方法中添加HttpSessionListener。但是,我的会话侦听器上的方法不会被调用。同时,当我让侦听器类实现ServletRequestListener时,请求侦听器相关的方法被调用。我打电话getSession(),所以会触发会话创建。以编程方式将HttpSessionListener添加到Jetty不起作用

任何想法,解决方法?我误读了规范吗?已知问题?

ServletContext.addListener()仅在狭义范围内支持(每个规格)。

它可以从2个代码路径之一中使用。

  1. ServletContainerInitializer.onStartup(Set<Class<?>> c, ServletContext ctx)
  2. ServletContextListener.contextInitialized(ServletContextEvent sce)

ServletContext.addListener()所有其他用途无效。