Dieser Bedarf mag ein bisschen verschlungen klingen, und wenn ja, dann bin ich offen für Vorschläge hinsichtlich der besten Praktiken für die Implementierung. Mein Problem ist folgendes. Ich habe eine WAR-Webapp, die in einer EAR enthalten ist. Alles ist mavenisiert. In meiner Webapp versuche ich, die Artefakt-IDs und Versionsnummern des Ohres und des Krieges zu zeigen.Gibt es irgendeine Möglichkeit für eine Klasse innerhalb eines Krieges, von ihrem Ohr auf die META-INF zuzugreifen?
Der Krieg ist ein ziemlich einfacher Fall zu handhaben. Ich kann einfache Maven-Filterung verwenden, um die notwendige artifactId/versionId in den Krieg zu injizieren, während sie gebaut wird. Das Ohr ist jedoch komplizierter.
Ich weiß, dass es ein META-INF/maven /// pom.properties gibt, das ich im Ohr betrachten kann, das diese Information enthält, aber ich kann nicht sehen, um darauf zuzugreifen.
Ich habe versucht (von einer Jsp-Seite) das Folgende ohne Erfolg (alle mit und ohne führend /); alle Aufrufe geben null zurück:
getClass().getClassLoader().getResource("/META-INF/maven/<group>/<artifact>/pom.properties");
getClass().getClassLoader().getResourceAsStream("/META-INF/maven/<group>/<artifact>/pom.properties");
Ist das mit dem Classloader überhaupt machbar? Oder ist es Klassenlader-Konfiguration abhängig? Gibt es einen besseren Ansatz, um diese Informationen zu erhalten?
Ich führe derzeit Tests mit JBoss durch, aber die endgültige Bereitstellung wird auf WebSphere erfolgen. Idealerweise möchte ich jedoch eine Lösung, die nicht serverabhängig ist.
Danke!
Eric
Danke für den Tipp. Das würde ganz gut funktionieren, aber ich scheine nicht in der Lage zu sein, die Injektion richtig funktionieren zu lassen. Ich habe das Ohr auf JBoss 7.0.2, aber der Env-Eintrag scheint nicht zu der Jndi-Struktur hinzugefügt werden. Auf welchem Server haben Sie diesen Code erfolgreich ausgeführt? –
Ignoriere meinen letzten Kommentar; hatte Probleme mit einer Konfigurationsdatei. Alles funktioniert jetzt gut. Vielen Dank! –
Gern geschehen, froh, hilfsbereit zu sein – Osw