【问题标题】:How to add ServletContainerInitializer to Grizzly WebappContext?如何将 ServletContainerInitializer 添加到 Grizzly WebappContext?
【发布时间】:2018-05-18 16:56:21
【问题描述】:

我以这种方式创建 Grizzly WebappContext:

WebappContext webContext = new WebappContext("WebappContext", "");

我有实现ServletContainerInitializer 的MyInitializer。如何将此初始化程序添加到 webContext?我试过这样:

webContext.addListener(new MyInitializer());

但是MyInitializer.onStartup 方法永远不会被调用。怎么做?

【问题讨论】:

    标签: java servlets jakarta-ee grizzly servlet-listeners


    【解决方案1】:

    ServletContainerInitializer 基于服务提供者接口 (SPI) 概念。 ServletContainerInitializer接口的实现必须在META-INF/services/javax.servlet.ServletContainerInitializer文件中配置。 这个jar 包含一个监听器,必须在一个ServletContainer 的WEB-INF/lib 中。

    webContext.addListener 将满足您的需求,但给定的侦听器必须是以下一个或多个接口的实例:

    - javax.servlet.ServletContextAttributeListener
    - javax.servlet.ServletRequestListener
    - javax.servlet.ServletRequestAttributeListener
    - javax.servlet.http.HttpSessionListener
    - javax.servlet.http.HttpSessionAttributeListener
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-15
      • 2018-03-14
      • 2020-06-22
      • 1970-01-01
      • 2012-06-02
      • 2016-01-24
      • 2018-09-20
      • 1970-01-01
      相关资源
      最近更新 更多