Wie Sie Zugang zu application.xml Datei von einem OHR eingesetzt, um IBM WebSphere 6.1
Bin ich bereitstellen einer EAR-Datei auf der IBM WebSpehre server 6.1 - ich möchte in der Lage sein, um Zugriff auf die EAR-name der Anwendung, die gespeichert wird in der deployment-Datei unter 'display-name'. Blick durch stack-overflow-Beiträge zu verwandten Themen, die ich habe sammeln können, dass dies möglich ist über das Java-MBean API - oder IBM-WAR-API - Problem ist, ich kann nicht einen Platz finden, wo diese API-Listen zusammengefasst werden, D. H. kann nicht herauszufinden, was man anfangen, sich auf. Konnte ich fest die WAR Installationsverzeichnis und suchen Sie die Datei, indem Sie in die "installedApps" - Verzeichnis, aber diese ist nicht dynamisch.
Hat jemand irgendwelche Erfahrung mit diesen APIs arbeiten? Eine andere Möglichkeit, um dynamisch zu finden, die eingesetzten OHR-anzeigen name?
EDIT - ich sollte hinzufügen, dass der Grund möchte ich diese Informationen werden dynamisch geladen, unsere Eigenschaften, die Dateien sind benannt nach der folgenden Konvention "EARAppName.Eigenschaften" - Sie sehen also, es IST eine vernünftige "Vorstellung" hinter dem Wunsch, diese Informationen in meiner Bewerbung
EDIT 2 - ich sollte auch beachten, dass diese app wird immer eingesetzt, die auf einem WAR - aber in dem Fall, dass es nicht, eine generische non-proprietäre Lösung würde bevorzugt, aber nicht notwendig in diesem Augenblick.
EDIT 3 - , Was ich erreichen will: gibt es eine Möglichkeit dynamisch zu finden, die eingesetzten OHR-display Namen aus, in den code der Anwendung?
- Bitte Bearbeiten Sie die Frage mit, was Sie erreichen möchten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der ganze Grund für dieses Ziel ist das Lesen von properties-Dateien, dann würde ich empfehlen, einen anderen Ansatz.
Verwenden Sie 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 bereitgestellte OHR ein separates Verzeichnis mit den Eigenschaften-Dateien, zugegriffen werden muss, die durch das OHR.
Erstellen von shared-library-Eintrag für jedes Verzeichnis enthält die Eigenschaften-Datei.
Vom OHR create shared library Verweis auf benötigte shared library.
.
Jedoch unten links können eine Hilfe sein, um Sie für Ihren Ansatz:
Verwalten von Anwendungen durch Programmierung
Schnittstelle AppManagement
Nicht eine direkte Antwort, aber wäre es nicht einfacher, verwenden Sie eine hart codierte Namen für die properties-Datei? Nachdem alle, es scheint Sinn zu machen für eine gegebene Anwendung, um bewusst sein, welche Datei zu laden. Schreiben von code zum Lesen der display-name in einem deployment-descriptor klingt seltsam (vor allem, da Sie, wie Application Component Provider, sollte sich nicht verlassen auf etwas, das im Besitz der Anwendung Assembler).
Ich bin versucht zu erreichen, die gleiche Sache hier. Ich bin versucht, zu suchen bei runtime der ApplicationName gefunden in der META-INF/application.xml.
Wir verwenden diese Anwendung in unserer Datei Log4J Appender zu erstellen, der richtige Protokoll-Dateiname auf der Basis der Anwendung, die derzeit die Protokollierung. Wir haben viele Programmierer und viele App-und wir müssen durchsetzen, einige übereinkommens in einem Rahmen.
Ich, whish konnte ich einfach anrufen:
Habe ich auch versucht zu ändern, den classloader zu 'PARENT_LAST/ERSTE' und 'Single-ClassLoader', aber es funktioniert nicht.
Konnte ich lokalisieren Sie die application.xml auf Dateisystem relativ zu Krieg meine Datei, aber ich bin nicht sicher, es würde die ganze Zeit arbeiten.
Ist die JMX-Api wirklich der einzige Weg?
Nicht für Ihre Anwendung zu wissen als solches, sondern für das OHR-handling-tools, einschließlich der Anwendungs-server.