如何将 ServletContainerInitializer 添加到 Grizzly WebappContext?
How to add ServletContainerInitializer to Grizzly WebappContext?
我这样创建 Grizzly WebappContext:
WebappContext webContext = new WebappContext("WebappContext", "");
我有实现 ServletContainerInitializer
的 MyInitializer。如何将此初始化程序添加到 webContext?我这样试过:
webContext.addListener(new MyInitializer());
但是 MyInitializer.onStartup
方法从未被调用。怎么做?
ServletContainerInitializer
基于服务提供者接口 (SPI) 概念。 ServletContainerInitializer
接口的实现必须在 META-INF/services/javax.servlet.ServletContainerInitializer
文件中配置。
此 jar
包含一个侦听器,必须在 WEB-INF/lib
的一个 ServletContainer 中。
webContext.addListener
将满足您的需求,但给定的侦听器必须是以下一个或多个接口的实例:
- javax.servlet.ServletContextAttributeListener
- javax.servlet.ServletRequestListener
- javax.servlet.ServletRequestAttributeListener
- javax.servlet.http.HttpSessionListener
- javax.servlet.http.HttpSessionAttributeListener
我这样创建 Grizzly WebappContext:
WebappContext webContext = new WebappContext("WebappContext", "");
我有实现 ServletContainerInitializer
的 MyInitializer。如何将此初始化程序添加到 webContext?我这样试过:
webContext.addListener(new MyInitializer());
但是 MyInitializer.onStartup
方法从未被调用。怎么做?
ServletContainerInitializer
基于服务提供者接口 (SPI) 概念。 ServletContainerInitializer
接口的实现必须在 META-INF/services/javax.servlet.ServletContainerInitializer
文件中配置。
此 jar
包含一个侦听器,必须在 WEB-INF/lib
的一个 ServletContainer 中。
webContext.addListener
将满足您的需求,但给定的侦听器必须是以下一个或多个接口的实例:
- javax.servlet.ServletContextAttributeListener
- javax.servlet.ServletRequestListener
- javax.servlet.ServletRequestAttributeListener
- javax.servlet.http.HttpSessionListener
- javax.servlet.http.HttpSessionAttributeListener