com.vaadin.flow.server.startup.

Interface ClassLoaderAwareServletContainerInitializer

All Superinterfaces:

jakarta.servlet.ServletContainerInitializer

All Known Subinterfaces:

VaadinServletContextStartupInitializer

All Known Implementing Classes:

AnnotationValidator, DevModeStartupListener, ErrorNavigationTargetInitializer, LookupServletContainerInitializer, RouteRegistryInitializer, VaadinAppShellInitializer, WebComponentConfigurationRegistryInitializer, WebComponentExporterAwareValidator

public interface ClassLoaderAwareServletContainerInitializer extends jakarta.servlet.ServletContainerInitializer

Allows to load the implementation class by one classloader but accepts classes in onStartup(Set, ServletContext) method loaded by another classloader.

Workaround for https://github.com/vaadin/flow/issues/7805.

Author:

Vaadin Ltd

  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    onStartup(Set<Class<?>> set, jakarta.servlet.ServletContext context)

    Overridden to use different classloaders if needed.

    void
    process(Set<Class<?>> classSet, jakarta.servlet.ServletContext context)

    Implement this method instead of onStartup(Set, ServletContext) to handle classes accessible by different classloaders.

    default boolean

    Whether this initializer requires lookup or not.

  • Method Details

    • onStartup

      default void onStartup(Set<Class<?>> set, jakarta.servlet.ServletContext context) throws jakarta.servlet.ServletException

      Overridden to use different classloaders if needed.

      Specified by:

      onStartup in interface jakarta.servlet.ServletContainerInitializer

      Throws:

      jakarta.servlet.ServletException

    • requiresLookup

      default boolean requiresLookup()

      Whether this initializer requires lookup or not.

      Returns:

      whether this initializer requires lookup

    • process

      void process(Set<Class<?>> classSet, jakarta.servlet.ServletContext context) throws jakarta.servlet.ServletException

      Implement this method instead of onStartup(Set, ServletContext) to handle classes accessible by different classloaders.

      Parameters:

      classSet - the Set of application classes that extend, implement, or have been annotated with the class types specified by the HandlesTypes annotation, or null if there are no matches, or this ServletContainerInitializer has not been annotated with HandlesTypes

      context - the ServletContext of the web application that is being started and in which the classes contained in classSet were found

      Throws:

      jakarta.servlet.ServletException - if an error has occurred

      See Also: