Frage

Ich bin eine EAR-Datei auf dem IBM WebSpehre Server bereitstellen 6.1 - Ich möchte die EAR-Anwendungsnamen in der Lage sein Zugriff auf die in der Bereitstellungsdatei unter ‚display-name‘ gespeichert ist. Beim Blick durch Stapelüberlauf-Beiträge zu verwandten Themen, ich habe in der Lage zu sammeln, dass dies möglich über die Java MBean API - oder IBM WS-API - Problem ist ich nicht einen Platz finden kann, wo diese API-Listen zusammengefasst werden, kann also nicht herausfinden, welche man beginnen zu suchen. Ich konnte das hart codieren WAR Standort installieren und die Datei, indem Sie in dem ‚installedApps‘ Verzeichnis finden, aber das ist nicht dynamisch.

hat jemand Erfahrung mit dieser APIs arbeiten? Jede andere Art und Weise, um dynamisch auf die bereitgestellte EAR Anzeigenamen zu finden?

EDIT - Ich sollte hinzufügen, dass der Grund, warum ich diese Informationen möchte ist dynamisch unsere Eigenschaftsdateien laden -, die durch die folgende Konvention „EARAppName.properties“ genannt werden - so dass Sie sehen, es ist eine vernünftige ‚Gründe‘ diese hinter dem Wunsch, Informationen in meiner Anwendung

EDIT 2 - Ich soll auch beachten, dass dieser App wird immer eingesetzt wird, auf einem WAS -. Aber in dem Fall, dass es nicht ist, eine generische nicht-proprietäre Lösung wäre vorzuziehen, aber nicht notwendig, in diesem Moment

EDIT 3 - Was ich erreichen will: Gibt es eine Möglichkeit dynamisch die entfalteten EAR Anzeigenamen zu finden, aus dem Anwendungscode?

War es hilfreich?

Lösung

Wenn der ganze Grund für dieses Ziel ist Properties-Dateien zu lesen, dann würde ich einen anderen Ansatz empfehlen.

Mit WebSphere Shared Library.

http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae /tcws_sharedlib.html

Für jede eingesetzte EAR verfügt über ein separates Verzeichnis mit Eigenschaften Dateien, die Bedürfnisse von diesem EAR zugegriffen werden.

Erstellen Sie gemeinsam genutzte Bibliothek Eintrag für jede Verzeichniseigenschaften Datei enthält.

Von EAR erstellen gemeinsam genutzte Bibliothek Verweis auf erforderliche gemeinsam genutzte Bibliothek.

.

Allerdings unter Links eine Hilfe für Ihr Konzept für Sie sein kann:

Verwalten von Anwendungen durch Programmierung

Schnittstelle AppManagement

Andere Tipps

keine direkte Antwort, aber wäre es nicht einfacher sein, ein hart codierten Namen für die Eigenschaften-Datei zu verwenden? Immerhin scheint es sinnvoll, für eine gegebene Anwendung bewusst, was Datei zu laden sein zu machen. Das Schreiben von Code den Anzeige-Namen in einem Deployment Descriptor zu lesen klingt seltsam (vor allem, weil Sie, wie Anwendungskomponente Provider , sollte sich nicht auf etwas im Besitz der Anwendung Assembler ).

Ich versuche, die gleiche Sache hier zu erreichen. Ich versuche, zur Laufzeit lokalisieren die Application in META-INF / application.xml gefunden.

Wir verwenden diese AnwName in unserer Log4J Datei Appender einen richtigen Protokolldateinamen basieren auf der Anwendung der Anmeldung zur Zeit zu erstellen. Wir haben viele Programmierer und viele App und wir brauchen eine Konvention in einem Rahmen zu erzwingen.

Ich wünsche ich könnte einfach anrufen:

InputStream in = new MyObject().getClass().getResourceAsStream(“META-INF/application.xml”);

Ich habe auch versucht die Klassenlader zu ‚PARENT_LAST / FIRST‘ zu ändern und ‚Single Classloader‘, aber es funktioniert nicht.

Ich konnte die application.xml auf Dateisystem in Bezug auf meine WAR-Datei finden, aber ich bin nicht sicher, würde es die ganze Zeit arbeiten.

Ist das JMX Api wirklich der einzige Weg?

Das ist nicht für Ihre Anwendung als solche wissen, aber für EAR-Handling-Tools, einschließlich dem Anwendungsserver.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top