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

Programmatically adding HttpSessionListener to Jetty not working

我正在使用嵌入式 Jetty 9,并尝试使用 ServletContext.addListener(T) 从我的 Servlet.init() 方法中添加 HttpSessionListener。但是,我的会话侦听器上的方法永远不会被调用。同时,当我让我的侦听器 class 实现 ServletRequestListener 时,将调用与请求侦听器相关的方法。我确实调用了 getSession(),因此应该会触发会话创建。

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

ServletContext.addListener() 仅在狭窄范围内受支持(根据规范)。

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

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

ServletContext.addListener() 的所有其他用法均无效。