2015-03-06 2 views
2

Мне нужно загрузить манифест приложения, которое я развертываю на Glassfish в качестве EAR.Чтение манифеста EAR

Вся информация, которую я нашел в Интернете, касается чтения манифестов банок или войн. Я попытался применить фрагменты кода, который я нашел к моей проблеме, но я этого не сделал. Я получаю, что я могу иметь любой манифест, либо из банок, которые содержит мой EAR, либо даже из банок в папке lib домена Glassfish. Не один из EAR.

Структура EAR: на уровне корня есть несколько банок, один из которых содержит класс с кодом, который предназначен для загрузки манифеста EAR.

ClassLoader cl = getClass().getClassLoader(); 
resources = cl.getResources("META-INF/MANIFEST.MF"); 

Я попробовал метод getResourceAsStream, но так, что не дал мне манифест я хотел, я попробовал метод GetResources, чтобы увидеть все манифесты он может дать мне и перебирать их, принимая взгляд на где они находятся. И ни один из них не является манифестацией EAR. Я получаю манифесты всех банок в моем EAR и все банки lib в домене Glassfish.

Я также попробовал лить getClassLoader как URLClassLoader и EarClassLoader, как это было предложено в других подобных вопросах StackOverFlow, не видя разницы в результатах.

Этот EAR создается из проекта в MyEclipse, который имеет только грань EAR. Этот проект не содержит кода и просто ссылки на другие проекты, которые в конечном итоге делают банки внутри него.

ответ

1

Вы должны найти, где файл ухо, а затем получить манифест по:

new java.util.jar.JarFile(file).getManifest(); 
2

The MANIFEST.MF для .ear является не на classpath, вы должны действительно открыть .ear как обычный zip файл и читать его таким образом.

+0

Так что я пытаюсь сделать, это невозможно? –

+1

Я только что объяснил, как это сделать в моем ответе. –

Смежные вопросы