Данные хранятся в singleton классе. Есть класс, который эти данные пишет в файл. В destroy и в destroyContext() вызываем этот метод и заодно пишем в логгер что-либо. Потом после работы с сервлетом останавливаем tomcat. Сообщений в консоли сервера нет, файл не создан, debug не заходит в destroy или destroyContext ()
Если контейнер не вызывает destroy, то, вроде как, он нарушает спеку. В багрепортах tomcat не смотрели? Какую версию tomcat вы используете?