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.Kapitel 3. Erste Schritte beim Entwickeln
Zusammenfassung
Dieses Kapitel erläutert, wie Sie mit der auf Maven basierenden Entwicklung beginnen. Ein zweiteiliges Projekt illustriert, wie Applikationen mittels Apache CXF und Apache Camel entwickelt werden.
3.1. Erstellen eines Web-Dienst-Projekts Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
3.1.1. Überblick Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Dieser Abschnitt beschreibt das Generieren eines einfachen Webdienst-Projekts, das den vollständigen Demo-Code für einen Server und Test-Client beinhaltet. Der Startpunkt für dieses Projekt ist der
karaf-soap-archetype
Maven Archetyp, bei dem es sich um einen Befehlszeilen-Assistenten handelt, der das gesamte Projekt von Grund auf erstellt. Es wird eine Anleitung für den Build des Projekts, die Bereitstellung des Servers für den Red Hat JBoss Fuse Container und das Ausführen des Test-Client geliefert.
3.1.2. Voraussetzungen Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Um vom Maven Repository auf Artifakte zuzugreifen, müssen Sie das
fusesource
Repository zu Mavens settings.xml
Datei hinzufügen. Maven sucht am folgenden Standard-Speicherort nach der settings.xml
Datei:
- UNIX:
home/User/.m2/settings.xml
- Windows:
Documents and Settings\User\.m2\settings.xml
Existiert derzeit keine
settings.xml
Datei an diesem Speicherort, so müssen Sie eine neue settings.xml
Datei erstellen. Bearbeiten Sie die settings.xml
Datei durch Hinzufügen des repository
Elements für fusesource
, wie im folgenden Beispiel gezeigt:
3.1.3. Ein Projekt von der Befehlszeile erstellen Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Sie können ein Maven-Projekt direkt von der Befehlszeile aus erstellen, indem Sie das
archetype:generate
»Goal« aufrufen. Zuerst erstellen Sie ein Verzeichnis, das Ihre ersten Projekte enthält. Öffnen Sie eine Befehlszeile, navigieren Sie zu einem Speicherort Ihrer Wahl in Ihrem Dateisystem und erstellen Sie das get-started
Verzeichnis wie folgt:
mkdir get-started cd get-started
mkdir get-started
cd get-started
Sie können jetzt das
archetype:generate
Goal für das Aufrufen des karaf-soap-archetype
Archetyps verwenden, der ein einfaches Apache CXF Demo generiert:
Anmerkung
Die Argumente des vorangehenden Befehls werden der Lesbarkeit halber in separaten Zeilen dargestellt, aber wenn Sie den Befehl tatsächlich eingeben, so muss dies in einer einzelnen Zeile erfolgen.
Eine der folgenden ähnliche Nachricht fordert Sie zur Bestätigung der Projekteinstellungen auf:
Tippen Sie Return, um die Einstellungen zu akzeptieren und das Projekt zu generieren. Nach Beenden des Befehls sollte sich ein neues Maven Projekt im
get-started/cxf-basic
Verzeichnis befinden.
3.1.4. Anpassen der Web-Client Testnachricht Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Passen Sie die Testnachricht des Beispiel-Client derart an, dass sie den korrekten XML-Namespace verwendet. Bearbeiten Sie die
cxf-basic/src/test/resources/request.xml
Datei, wobei Sie die xmlns:ns2="http://soap.quickstarts.fabric8.io/"
Namespace-Einstellung durch xmlns:ns2="http://example.fusesource.org/"
ersetzen.
Nach dem Bearbeiten der
request.xml
Datei sollten die Inhalte wie folgt aussehen:
3.1.5. Build des Web-Dienst-Projekts Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Führen Sie den Build des Web-Dienste Projekts aus und installieren Sie die generierte JAR-Datei in Ihrem lokalen Maven Repository. Geben Sie in einer Befehlseingabe die folgenden Befehle ein:
cd cxf-basic mvn install
cd cxf-basic
mvn install
3.1.6. Initialisieren der Container-Sicherheit Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Falls Sie es nicht bereits getan haben, erstellen Sie einen (oder mehrere) Benutzer, indem Sie der
InstallDir/etc/users.properties
Datei eine Zeile in der folgenden Form hinzufügen:
Username=Password[,RoleA][,RoleB]...
Username=Password[,RoleA][,RoleB]...
Mindestens einer der Benutzer muss die
Administrator
Rolle besitzen, um die Administration des Fabric zu aktivieren. Zum Beispiel:
admin=secretpassword,Administrator
admin=secretpassword,Administrator
3.1.7. Starten des Containers Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Starten Sie den JBoss Fuse Container. Öffnen Sie eine neue Befehlseingabe und geben Sie folgende Befehle ein:
cd InstallDir/bin ./fuse
cd InstallDir/bin
./fuse
Sie sehen einen dem folgenden ähnlichen Begrüßungsbildschirm:
3.1.8. Bereitstellen und Starten des WS-Servers Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Um den
cxf-basic
Web-Dienst als ein OSGi-Bündel zu installieren und zu starten, geben Sie den folgenden Konsolenbefehl ein:
JBossFuse:karaf@root> install -s mvn:org.fusesource.example/cxf-basic/1.0-SNAPSHOT
JBossFuse:karaf@root> install -s mvn:org.fusesource.example/cxf-basic/1.0-SNAPSHOT
Anmerkung
Falls sich Ihr lokales Maven Repository an einem nicht standardmäßigen Speicherort befindet, so ist es möglich, dass Sie den Wert der
org.ops4j.pax.url.mvn.localRepository
Eigenschaft in der InstallDir/etc/org.ops4j.pax.url.mvn.cfg
Datei anpassen müssen, ehe Sie das mvn:
Schema für den Zugriff auf Maven Artifakte verwenden können.
Wurde das Bündel erfolgreich aufgelöst und installiert, so antwortet der Container mit der ID des neu erstellten Bündels—zum Beispiel:
Bundle ID: 265
Bundle ID: 265
3.1.9. Überprüfen Sie, ob das Bündel gestartet wurde Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Um zu überprüfen, ob das Bündel gestartet wurde, geben Sie den Konsolenbefehl
list
ein, der Ihnen den Status aller im Container installierter Bündel liefert:
JBossFuse:karaf@root> list
JBossFuse:karaf@root> list
Gegen Ende der Liste, sollte eine Statuszeile ähnlich dieser sichtbar sein:
[ 265] [Installed ] [ ] [ ] [ 80] JBoss Fuse Quickstart: soap (1.0.0.SNAPSHOT)
[ 265] [Installed ] [ ] [ ] [ 80] JBoss Fuse Quickstart: soap (1.0.0.SNAPSHOT)
Anmerkung
Um Unordnung zu vermeiden zeigt der
list
Befehl nur Bündel mit einem Startlevel ab 50 an (was die meisten Systembündel ausschließt).
3.1.10. Ausführen des WS-Client Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Das
cxf-basic
Projekt beinhaltet auch einen einfachen WS-Client, der zum Testen des bereitgestellten Webdienstes verwendet werden kann. Navigieren Sie in einer Befehlszeile in das cxf-basic
Verzeichnis und führen Sie den einfachen WS-Client wie folgt aus:
cd get-started/cxf-basic mvn -Ptest
cd get-started/cxf-basic
mvn -Ptest
Läuft der Client erfolgreich, so erscheint eine der folgenden ähnliche Ausgabe:
Running org.fusesource.example.SoapTest the response is ====> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:sayHiResponse xmlns:ns2="http://example.fusesource.org/"><return>Hello John Doe</return></ns2:sayHiResponse></soap:Body></soap:Envelope> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.184 sec - in org.fusesource.example.SoapTest
Running org.fusesource.example.SoapTest
the response is ====>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:sayHiResponse xmlns:ns2="http://example.fusesource.org/"><return>Hello John Doe</return></ns2:sayHiResponse></soap:Body></soap:Envelope>
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.184 sec - in org.fusesource.example.SoapTest
3.1.11. Fehlerbehandlung Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Falls Sie Probleme beim Ausführen des Client haben, so gibt es eine noch einfachere Weise, um den Webdienst zu verbinden. Öffnen Sie den Webbrowser Ihrer Wahl und navigieren Sie zu der folgenden URL, um den JBoss Fuse Jetty Container zu kontaktieren:
http://localhost:8181/cxf
http://localhost:8181/cxf
Um die WSDL direkt vom HelloWorld Webdienst abzufragen, navigieren Sie zu der folgenden URL:
http://localhost:8181/cxf/HelloWorld?wsdl
http://localhost:8181/cxf/HelloWorld?wsdl