У меня была такая же проблема, и после некоторых исследований я обнаружил, что, к сожалению, в спецификации Servlet 3.0 нет четкого требования поддерживать страницу ошибок по умолчанию.
Вводит в заблуждение тот факт, что «код ошибки» или «тип исключения» являются необязательными тегами в XSD, поэтому мы склонны считать, что страница ошибок по умолчанию будет иметь страницу без тега «код ошибки» и без тега «тип исключения».
Некоторые серверы приложений (например, GlassFish) ведут себя так, как нам хочется, принимают страницу ошибок по умолчанию, затем, следуя порядку страниц с конкретными ошибками, переопределяют страницу ошибок по умолчанию.
Я также проверил это на WebLogic 12c и не смог заставить его работать так же, как на GlassFish. Ниже статья дает больше подсказок о Tomcat.
См .: bz.apache.org/bugzilla/show_bug.cgi?id=52135