Web listener installer¶
WebInstallersBundle / WebListenerInstaller
Register new web listener in main or admin contexts.
Recognition¶
Detects classes annotated with @jakarta.servlet.annotation.WebListener
annotation and register them in dropwizard environment.
@WebListener
public class MyListener implements ServletContextListener, ServletRequestListener {...}
Listener could implement multiple listener interfaces and all types will be registered.
Supported listeners (the same as declared in annotation):
- jakarta.servlet.ServletContextListener
- jakarta.servlet.ServletContextAttributeListener
- jakarta.servlet.ServletRequestListener
- jakarta.servlet.ServletRequestAttributeListener
- jakarta.servlet.http.HttpSessionListener
- jakarta.servlet.http.HttpSessionAttributeListener
- jakarta.servlet.http.HttpSessionIdListener
By default, dropwizard is not configured to support sessions. If you define session listeners without configured session support then warning will be logged (and servlet listeners will actually not be registered). Error is not thrown to let writing more universal bundles with listener extensions (session related extensions will simply not work). If you want to throw exception in such case, use special option:
bundle.option(InstallersOptions.DenySessionListenersWithoutSession, true)
Tip
Use guicey @Order
annotation to order servlets registration.
@Order(10)
@WebListener
public class MyListener implements ServletContextListener {...}
Admin context¶
By default, installer target application context. If you want to install into admin context then
use guicey @AdminContext
annotation.
For example:
@AdminContext
@WebListener
public class MyListener implements ServletContextListener {...}
Will install filter in admin context only.
If you want to install in both contexts use andMain attribute:
@AdminContext(andMain = true)
@WebListener
public class MyListener implements ServletContextListener {...}