Я развертываю относительно простое веб-приложение на Tomcat 7.0.8 (JVM 1.6).
Приложение регистрирует ServletContextListener и имеет единственный ресурс под названием «данные», расположенный в WEB-INF.Файл «data» содержит один сериализованный экземпляр простого класса с именем Data.У данных есть несколько открытых полей String и Integer, но больше ничего.Он реализует Serializable и определяет свой собственный serialVersionUID.
В слушателе конкурса contextInitialized () выполняет следующие действия:
- Получение InputStream для «данных» из ServletContext,
- Создать ObjectInputStream из InputStream,
- Считать отдельный объект из ObjectInputStream,
- Привести его к типу «Данные»,
- Записать значения полей вSystem.out,
- Закройте ObjectInputStream и поддерживающий его InputStream.
Кажется, все работает нормально. Однако , когда я останавливаю веб-приложение через приложение менеджера Tomcat, а затем проверяю утечки памяти, Tomcat сообщает мне, что мое приложение просочилось в память, когда оно было остановлено.
Я уверен, что проблема вкласс данных, так как при сериализации строки или целого числа я не вижу утечки.
Есть мысли?