Um esclarecimento da especificação Servlet 3.1 agora não permite que um implementador da interface ServletContextListener configure programaticamente servlets, filtros ou listeners, se o ServletContextListener não foi declarado no arquivo web.xml ou no arquivo web-fragment.xml ou não foi anotado com @WebListener. Como resultado, qualquer chamada na interface ServletContext para executar a configuração programática resulta em uma UnsupportedOperationException. Essa regra sinaliza classes que implementam a interface javax.servlet.ServletContextListener e não são anotadas com @WebListener nem são definidas como listener-class no arquivo web.xml ou web-fragment.xml.
Os métodos a seguir podem lançar a UnsupportedOperationException:
Para mais informações sobre mudanças de comportamento do Servlet 3.1, veja o recurso a seguir: Mudanças de comportamento do Servlet 3.1.