В спецификации Servlet 3.1 явно указано, что классы, реализующие интерфейс ServletContextListener, не могут программным образом настраивать сервлеты, фильтры и получатели запросов, если ServletContextListener не объявлен в файле web.xml или web-fragment.xml и не имеет аннотации @WebListener. В этом случае любой вызов интерфейса ServletContext для выполнения такой программной настройки приведет к возникновению исключительной ситуации UnsupportedOperationException. Данное правило отмечает классы, реализующие интерфейс javax.servlet.ServletContextListener, которые не имеют аннотации @WebListener и не определены как listener-class в файле web.xml или web-fragment.xml.
Исключительная ситуация UnsupportedOperationException может генерироваться следующими методами:
Дополнительные сведения об изменении поведения Servlet 3.1 см. в ресурсе: Изменение поведения Servlet 3.1.