У меня есть веб-приложение, которое содержит файл манифеста, в котором я записываю текущую версию своего приложения во время задачи сборки ant. Файл манифеста создан правильно, но когда я пытаюсь прочитать его во время выполнения, я получаю некоторые странные побочные эффекты. Мой код для чтения в манифесте выглядит примерно так:
InputStream manifestStream = Thread.currentThread()
.getContextClassLoader()
.getResourceAsStream("META-INFFFF/MANIFEST.MF");
try {
Manifest manifest = new Manifest(manifestStream);
Attributes attributes = manifest.getMainAttributes();
String impVersion = attributes.getValue("Implementation-Version");
mVersionString = impVersion;
}
catch(IOException ex) {
logger.warn("Error while reading version: " + ex.getMessage());
}
Когда я присоединяю eclipse к tomcat, я вижу, что приведенный выше код работает, но, похоже, он получает файл манифеста, отличный от того, который я ожидал, что я могу сказать, потому что версия ant и метка времени сборки отличаются. Затем я положил туда «META-INFFFF», и приведенный выше код все еще работает! Это означает, что я читаю какой-то другой манифест, а не мой. Я тоже пробовал
this.getClass().getClassLoader().getResourceAsStream(...)
Но результат был тот же. Как правильно читать файл манифеста из веб-приложения, запущенного в tomcat?
Редактировать : Спасибо за предложения. Кроме того, я должен отметить, что я я работаю tomcat автономно; Я запускаю его из командной строки, а затем присоединяю к работающему экземпляру в отладчике Eclipse. Это не должно иметь значение, не так ли?