У меня действительно была прямо противоположная проблема - мой сервлет вызывал блокировку файлов, которые не очищались при перезагрузке контекста. Конечно, причина была в том, что я открывал InputStreams / BufferedReaders и не закрывал их. Для вас открытие файлов таким способом может быть довольно не требующим высоких технологий решением вашей проблемы, так как это должно привести к блокировке на уровне O / S, что, вероятно, и вам нужно.