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

3.1.1. Überblick

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

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:
<settings>
    <profiles>
        <profile>
            <id>my-profile</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <repositories>
                <repository>
                    <id>fusesource</id>
                    <url>http://repo.fusesource.com/nexus/content/groups/public/</url>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                </repository>
                ...
            </repositories>
        </profile>
    </profiles>
    ...
</settings>

3.1.3. Ein Projekt von der Befehlszeile erstellen

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
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:
mvn archetype:generate
-DarchetypeGroupId=io.fabric8.archetypes
-DarchetypeArtifactId=karaf-soap-archetype
-DarchetypeVersion=1.2.0.redhat-621084
-DgroupId=org.fusesource.example
-DartifactId=cxf-basic
-Dversion=1.0-SNAPSHOT
-Dfabric8-profile=cxf-basic-profile
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:
[INFO] Using property: groupId = org.fusesource.example
[INFO] Using property: artifactId = cxf-basic
[INFO] Using property: version = 1.0-SNAPSHOT
[INFO] Using property: package = org.fusesource.example
[INFO] Using property: fabric8-profile = cxf-basic-profile
Confirm properties configuration:
groupId: org.fusesource.example
artifactId: cxf-basic
version: 1.0-SNAPSHOT
package: org.fusesource.example
fabric8-profile: cxf-basic-profile
 Y: :
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

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:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <ns2:sayHi xmlns:ns2="http://example.fusesource.org/">
            <arg0>John Doe</arg0>
        </ns2:sayHi>
    </soap:Body>
</soap:Envelope>

3.1.5. Build des Web-Dienst-Projekts

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

3.1.6. Initialisieren der Container-Sicherheit

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]...
Mindestens einer der Benutzer muss die Administrator Rolle besitzen, um die Administration des Fabric zu aktivieren. Zum Beispiel:
admin=secretpassword,Administrator

3.1.7. Starten des Containers

Starten Sie den JBoss Fuse Container. Öffnen Sie eine neue Befehlseingabe und geben Sie folgende Befehle ein:
cd InstallDir/bin
./fuse
Sie sehen einen dem folgenden ähnlichen Begrüßungsbildschirm:
      _ ____                  ______
     | |  _ \                |  ____|             
     | | |_) | ___  ___ ___  | |__ _   _ ___  ___
 _   | |  _ < / _ \/ __/ __| |  __| | | / __|/ _ \
| |__| | |_) | (_) \__ \__ \ | |  | |_| \__ \  __/
 \____/|____/ \___/|___/___/ |_|   \__,_|___/\___|

  JBoss Fuse (6.2.1.redhat-084)
  http://www.redhat.com/products/jbossenterprisemiddleware/fuse/

Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.

Open a browser to http://localhost:8181 to access the management console

Hit '<ctrl-d>' or 'osgi:shutdown' to shutdown JBoss Fuse.

JBossFuse:karaf@root>

3.1.8. Bereitstellen und Starten des WS-Servers

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
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

3.1.9. Überprüfen Sie, ob das Bündel gestartet wurde

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
Gegen Ende der Liste, sollte eine Statuszeile ähnlich dieser sichtbar sein:
[ 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

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
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

3.1.11. Fehlerbehandlung

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
Um die WSDL direkt vom HelloWorld Webdienst abzufragen, navigieren Sie zu der folgenden URL:
http://localhost:8181/cxf/HelloWorld?wsdl
Red Hat logoGithubRedditYoutubeTwitter

Lernen

Testen, kaufen und verkaufen

Communitys

Über Red Hat Dokumentation

Wir helfen Red Hat Benutzern, mit unseren Produkten und Diensten innovativ zu sein und ihre Ziele zu erreichen – mit Inhalten, denen sie vertrauen können.

Mehr Inklusion in Open Source

Red Hat hat sich verpflichtet, problematische Sprache in unserem Code, unserer Dokumentation und unseren Web-Eigenschaften zu ersetzen. Weitere Einzelheiten finden Sie in Red Hat Blog.

Über Red Hat

Wir liefern gehärtete Lösungen, die es Unternehmen leichter machen, plattform- und umgebungsübergreifend zu arbeiten, vom zentralen Rechenzentrum bis zum Netzwerkrand.

© 2024 Red Hat, Inc.