Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.3.5. Konfiguration der Applikation
3.5.1. OSGi Config Admin Dienst Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Der OSGi Config Admin Dienst ist ein Standard OSGi Konfigurationsmechanismus, der es Administratoren gestattet, die Konfiguration der Applikation zum Zeitpunkt der Bereitstellung bei der Runtime zu bearbeiten. Dies steht im Gegensatz zu den Einstellungen, die direkt in einer Blueprint XML-Datei erfolgen, da diese XML-Dateien nur dem Entwickler zugänglich sind.
Der OSGi Config Admin Dienst stützt sich auf die folgenden Grundkonzepte:
- Persistent ID
- Eine persistente ID (PID) identifiziert eine Gruppe verwandter Eigenschaften. Eine PID ist normalerweise in demselben Format wie ein Java-Paketname geschrieben. Die
org.ops4j.pax.webPID zum Beispiel konfiguriert den standardmäßigen Jetty Web server des Red Hat JBoss Fuse Containers. - Eigenschaften
- Eine Eigenschaft ist ein Name-Wert-Paar, das immer zu einer bestimmten PID gehört.
3.5.2. Einstellen der Konfigurationseigenschaften Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Es gibt zwei Hauptarten, um die Eigenschaften im OSGi Config Admin Dienst anzupassen. Dies kann wie folgt geschehen:
- Für eine bestimmt PID, PersistentID, können Sie eine Textdatei im
InstallDir/etcVerzeichnis erstellen, das der folgenden Namengebungskonvention folgt:InstallDir/etc/PersistentID.cfg
InstallDir/etc/PersistentID.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow Sie können jetzt die zu dieser PID gehörenden Eigenschaften einstellen, indem Sie diese Datei bearbeiten und Einträge in der folgenden Form hinzufügen:Property=Value
Property=ValueCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Fuse Fabric unterstützt einen weiteren Mechanismus zur Anpassung von OSGi Config Admin Eigenschaften. Sie stellen in Fuse Fabric OSGi Config Admin Eigenschaften in einem Fabric Profil ein (wobei ein Profil die für die Bereitstellung einer Applikation erforderlichen Daten beinhaltet). Es gibt zwei alternative Wege, um diese Konfigurationseinstellungen in einem Profil zu bearbeiten:
- Verwendung der Management-Konsole
- Verwendung des
fabric:profile-editBefehls in einer Container-Konsole (siehe Abschnitt 4.2.2, »Fabric Profile erstellen«).
3.5.3. Ersetzen Sie TCP-Port durch einen Platzhalter für die Eigenschaft Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Als ein Beispiel wie der OSGi Config Admin Dienst in der Praxis eingesetzt werden könnte, könnten wir uns etwa den vom
HelloWorld Web-Dienst vom cxf-basic Projekt verwendeten TCP-Port ansehen. Durch Bearbeiten der Blueprint XML Datei, die diesen Webdienst definiert, können Sie den TCP-Port des Webdienstes durch den OSGi Config Admin Dienst anpassbar machen.
Die TCP-Port-Nummer in der Blueprint XML-Datei wird durch einen Eigenschaften-Platzhalter ersetzt, der die Port-Nummer zur Runtime durch Auffinden der Eigenschaft im OSGi Config Admin Dienst ersetzt.
3.5.4. Blueprint XML Beispiel Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Im
cxf-basic Projekt werden alle XML-Dateien vom folgenden Speicherort wie Blueprint XML-Dateien behandelt (dem standardmäßigen Maven Speicherort für Blueprint XML-Dateien):
cxf-basic/src/main/resources/OSGI-INF/blueprint/*.xml
cxf-basic/src/main/resources/OSGI-INF/blueprint/*.xml
Bearbeiten Sie die
blueprint.xml Datei vom vorherigen Verzeichnis und fügen Sie die in Beispiel 3.1, »Konfiguerieren der Port-Nummer in Blueprint XML« dargestellten XML-Inhalte hinzu.
Beispiel 3.1. Konfiguerieren der Port-Nummer in Blueprint XML
Der markierte Text zeigt diejenigen Teile der Blueprint-Konfiguration, die für den OSGi Config Admin Dienst maßgeblich sind. Abgesehen vom
cm Namespace, sind die Hauptänderungen wie folgt:
- Das
cm:property-placeholderBean kontaktiert den OSGi Config Admin Dienst und ruft alle Eigenschaft-Einstellungen von derorg.fusesource.example.get.startedPID ab. Die Schlüssel-Wert-Paare imcm:default-properties/cm:propertyElement legen Standardwerte für die Eigenschaften fest (die außer Kraft gesetzt werden, wenn entsprechende Einstellungen vom OSGi Config Admin Dienst abgerufen werden können). - Der
${portNumber}Platzhalter wird zum Festlegen der TCP Port-Nummer verwendet, die vomHelloWorldWebdienst benutzt wird.
Anmerkung
Für die Blueprint XML Konfiguration müssen Sie sicherstellen, dass die Anweisungen für den
maven-bundle-plugin in der pom.xml Datei des Projekts den Platzhalter * in den im Import-Package Element gelisteten Paketen beinhalten (ist das Import-Package Element nicht vorhanden, so wird der Platzhalter standardmäßig eingesetzt). Andernfalls wird Ihnen der folgende Fehler gemeldet: Unresolved references to [org.osgi.service.blueprint] by class(es) on the Bundle-Classpath[Jar:dot]: [].
3.5.5. Bereitstellung der konfigurierbaren Applikation Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Um den konfigurierbaren Webdienst vom
cxf-basic Projekt bereitzustellen, führen Sie die folgenden Schritte durch:
- Bearbeiten Sie die Blueprint XML Datei
blueprint.xml, um den OSGi Config Admin Dienst, wie in Beispiel 3.1, »Konfiguerieren der Port-Nummer in Blueprint XML« beschrieben, zu integrieren. - Führen Sie einen erneuten Build des
cxf-basicProjekts mit Maven durch. Öffnen Sie eine Befehlszeile, ändern Sie das Verzeichnis in dasget-started/cxf-basicVerzeichnis und geben Sie den folgenden Maven Befehl ein:mvn clean install
mvn clean installCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Erstellen Sie die Konfigurationdatei im
etc/Verzeichnis Ihrer Red Hat JBoss Fuse Installation:InstallDir/etc/org.fusesource.example.get.started.cfg
InstallDir/etc/org.fusesource.example.get.started.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow Bearbeiten Sie dieorg.fusesource.example.get.started.cfgDatei mit einem Texteditor und fügen Sie die folgenden Inhalte hinzu:portNumber=8182
portNumber=8182Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Wenn Sie die
get-started-basicFunktion zuvor bereitgestellt haben (wie in Abschnitt 3.4, »Definieren eines Feature für die Applikation« beschrieben), deinstallieren Sie sie jetzt:JBossFuse:karaf@root> features:uninstall get-started-basic
JBossFuse:karaf@root> features:uninstall get-started-basicCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Stellen Sie das
get-started-cxfFeature bereit, indem Sie den folgenden Konsolenbefehl eingeben:JBossFuse:karaf@root> features:install get-started-cxf
JBossFuse:karaf@root> features:install get-started-cxfCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Nachdem Sie ein paar Sekunden auf den Start der Bündel gewartet haben, können Sie den vom HelloWorld-Dienst verwendeten Port durch Eingabe des folgenden Konsolenbefehls überprüfen:
JBossFuse:karaf@root> cxf:list-endpoints Name State Address BusID [FabricResource ] [Started ] [/fabric8 ] [io.fabric8.fabric-rest-cxf250714502 ] [HelloWorldImplPort ] [Started ] [http://0.0.0.0:8182/cxf/HelloWorld ] [org.fusesource.example.cxf-basic-cxf1456001875]
JBossFuse:karaf@root> cxf:list-endpoints Name State Address BusID [FabricResource ] [Started ] [/fabric8 ] [io.fabric8.fabric-rest-cxf250714502 ] [HelloWorldImplPort ] [Started ] [http://0.0.0.0:8182/cxf/HelloWorld ] [org.fusesource.example.cxf-basic-cxf1456001875]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sie sehen, dass der HelloWorld-Dienst an Port8182horcht. - Falls Sie den Web-Client-Test gegen diesen Webdienst durchführen möchten, so müssen Sie die vom Client verwendete URL anpassen. Öffnen Sie mit einem Texteditor die
SoapTest.javaDatei vomcxf-basic/src/test/java/org/fusesource/exampleVerzeichnis und ändern Sie die Verbindungs-URL wie im folgenden Fragment markiert:URLConnection connection = new URL("http://localhost:8182/cxf/HelloWorld").openConnection();URLConnection connection = new URL("http://localhost:8182/cxf/HelloWorld").openConnection();Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Sie können die Applikation dann testen, indem Sie eine Befehlszeile öffnen, ins Verzeichnis
get-started/cxf-basicwechseln und den folgenden Befehl eingeben:mvn -Ptest
mvn -PtestCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Um die Funktion zu deinstallieren, geben Sie den folgenden Konsolenbefehl ein:
features:uninstall get-started-cxf
features:uninstall get-started-cxfCopy to Clipboard Copied! Toggle word wrap Toggle overflow