Итак, у меня была похожая ошибка. Для меня это было то, что у меня был проект JSF, и я возился с расширениями файлов. Для начала у меня были все мои веб-файлы с расширением .jsp. Это работало, но потом я хотел, чтобы они были все .jsf, а затем я пошел ва-банк, используя .xhtml. В процессе, мой файл web.xml изменился, чтобы вместить xhtml и jsf. Смена файла web.xml прошла нормально. Что меня поразило StackOverflowError, так это то, что у меня был index.xhtml с тегом ui.include, указывающим на header.jsf. Итак, у меня был файл xhtml, указывающий на файл jsf. Я думал, что web.xml сможет справиться с этим, но это не так, я получил StackOverflowError. Итак, чтобы это исправить, теперь все мои JSF-файлы имеют расширение .xhtml, а вложенные теги пользовательского интерфейса: include указывают на файлы .xhtml.
С другой стороны, URL-адрес браузера может нормально обрабатывать index.jsp, index.jsf, index.xhtml. Таким образом, файл web.xml (с отображениями сервлетов для jsp, jsf и xhtml) прекрасно обрабатывает URL-адрес браузера, но не для того, что выделено моей проблемой выше.