Ich versuche, eine eigene MANIFEST.MF-Ressource in einem Java-Servlet zu lesen. Meine Situation: Ich habe einen KRIEG (mit dem Manifest, das ich lesen möchte) in einem EAR. Es gibt mehrere andere WARs und JARs in der EAR. Ein Klassenpfad ist wirklich lang.Eigenen MANIFEST.MF in Java-Servlet lesen
Ich habe verschiedene Möglichkeiten im Web versucht, einschließlich StackOverflow.
Ich kann alle MANIFEST.MF Dateien lesen
this.getClass().getClassLoader().getResources("META-INF/MANIFEST.MF");
und durchlaufen sie zu benutzen. Allerdings weiß ich nicht, welcher mir gehört - ich kenne nicht mal den Implementierungs-Titel, da dieser von einer Build-Pipe erzeugt wird. (Ich kann mit Kenntnis des Build-Rohres erraten, daher weiß ich, das richtige manifest ist. Allerdings kann ich nicht in einem Produktionscode erraten.)
Natürlich
this.getClass().getClassLoader().getResourceAsStream("META-INF/MANIFEST.MF");
gibt ein völlig falsches manifest aus einem anderen Glas auf einem Klassenpfad.
Ich habe auch versucht
this.getServletContext().getResourceAsStream("META-INF/MANIFEST.MF");
aber es gibt eine Null.
Wie kann man auf eine Datei namens MANIFEST.MF zugreifen, die zum WAR gehört und ein laufendes Servlet enthält?
Welche Manifestattribute möchten Sie lesen? Viele von ihnen sind mit bestehenden Java-SE-Methoden erhältlich. – VGR
VGR +1, Version erhalten zum Beispiel: String version = getClass(). GetPackage(). GetImplementationVersion(); – Rustam
Die obigen Kommentare gelten nicht für WARs eigenes Manifest und sind daher falsch. – BalusC