< Zurück | Weiter >

Lerneinheit 2: Web-Service erstellen

In dieser Lerneinheit erfahren Sie, wie Sie aus der in der vorherigen Lerneinheit importierten WSDL-Datei einen Top-down-Java-Adressbuch-Web-Service erstellen.

Bevor Sie mit dieser Lerneinheit beginnen können, müssen Sie zuerst die Lerneinheit 1: Server und Webprojekt erstellen abgeschlossen haben.
  1. Wechseln Sie in die Java™ EE-Perspektive: Fenster > Perspektive öffnen >Andere> Java EE.
  2. Wählen Sie im Enterprise-Explorer die WSDL-Datei aus, die Sie in der vorherigen Lerneinheit importiert haben.
  3. Klicken Sie mit der rechten Maustaste auf die WSDL-Datei und wählen Sie Web-Services > Java-Bean-Entwurf generieren aus.
  4. Seite "Web-Services": Wählen Sie Top-down-Java-Bean-Web-Service als Ihren Web-Service-Typ aus und stellen Sie sicher, dass AddressBook.wsdl als Servicedefinition festgelegt ist. Sie können die folgenden Optionen auswählen:
    1. Verwenden Sie den Schieberegeler, um die Stufen der Web-Service-Entwicklung auszuwählen, die Sie durchführen möchten. Mit dem Schieberegler werden die Standardeinstellungen auf den verbleibenden Assistentenseiten festgelegt, Sie können jedoch die Standardeinstellungen, während Sie fortfahren, auf jeder Seite überschreiben. Wählen Sie für dieses Lernprogramm Service starten aus. Auf diese Weise wird der gesamte für den Web-Service erforderliche Code erstellt, im Server implementiert und es wird versucht, den Server zu starten.
    2. Wählen Sie Ihren Server aus: Klicken Sie auf den Serverlink und stellen Sie sicher, dass als Server "WebSphere Application Server Version 8" ausgewählt ist.
    3. Wählen Sie Ihre Laufzeit aus: Stellen Sie sicher, dass die IBM® JAX-WS-Laufzeit ausgewählt ist.
    4. Wählen Sie das Serviceprojekt aus: Wählen Sie das in der vorherigen Lerneinheit erstellte Projekt jwsAddressBook aus.
    5. Wählen Sie das Service-EAR-Projekt aus: Wählen Sie das in der vorherigen Lerneinheit erstellte Projekt jwsAddressBookEAR aus.
    6. Der Client wird später erstellt. Stellen Sie daher sicher, dass der Schieberegler auf Kein Client gesetzt ist.
    Klicken Sie auf Weiter.
  5. Seite "WebSphere-JAX-WS-Top-down-Web-Service konfigurieren":
    • Ausgabeordner: Übernehmen Sie die Standardposition, in der der generierte Java-Entwurf gespeichert wird: jwsAddressBook/src.
    • Zielpaket: Übernehmen Sie den Standardpaketnamen.
    • Wrapper-Stil aktivieren: Aktiviert Wrapper-Stilzuordnung von WSDL in Java. Für WSDL-Dokumente, die ein in ein Dokument/Literal eingeschlossenes Muster implementieren, wird ein Rootelement im XML-Schema deklariert und als Operationswrapper für einen Nachrichtenfluss verwendet. Für Anforderung und Antwort sind gesonderte Wrapper-Elementdefinitionen vorhanden. Übernehmen Sie die Standardeinstellung.
    • MTOM-Unterstützung aktivieren: Wenn Sie dieses Kontrollkästchen auswählen, wird MTOM für SOAP (Message Transmission Optimization Mechanism) aktiviert, um die Übertragung von binärem Inhalt zu optimieren. Übernehmen Sie die Standardeinstellung.
    • Version des zu generierenden JAX-WS-Codes: Ab WebSphere Application Server Version 8.0 können Sie JAX-WS 2.1 konformen Code generieren. Wählen Sie für dieses Lernprogramm Version 2.1 aus.
    • WSDL in Projekt kopieren: Wählen Sie dies aus, um die WSDL-Datei in das Serviceprojekt zu kopieren. Da Sie den Client zu einem späteren Zeitpunkt erstellen, wählen Sie dieses Kontrollkästchen aus.
    • Serialisierbare JAXB-Klassen generieren: Sie können mit WebSphere Application Server Version 7.0 und höher bei aktivierter Java 6-Facette JAXB-Klassen generieren, die java.io.Serializable implementieren. Für Klassen, die diese Schnittstelle nicht implementieren, werden keine Status serialisiert und entserialisiert. Wählen Sie diese Option nicht für das Lernprogramm aus.
    • JAX-WS- oder JAXB-Bindungsdateien angeben: Diese Option ermöglicht die Verwendung von angepassten JAX-WS- oder JAXB-Bindungsdateien. Wählen Sie diese Option nicht für das Lernprogramm aus.
    • Namen der Serviceimplementierungsklasse anpassen: Mit dieser Option können Sie die Zuordnung des Standardportnamens zum Namen der Serviceimplementierungklasse ändern. Wählen Sie diese Option nicht für das Lernprogramm aus.
    • Schemabibliothek generieren: Bei Auswahl dieser Option wird der Java-Compiler für das JAX-WS-Schema ausgeführt, um eine Schemabibliothek zu generieren. Wählen Sie diese Option nicht für dieses Lernprogramm aus.
    • Web-Service-Implementierungsdeskriptor generieren: Für JAX-WS-Web-Services werden Implementierungsinformationen von der Laufzeitumgebung dynamisch generiert. Statische Implementierungsdeskriptoren sind nicht mehr erforderlich. Bei Auswahl dieses Kontrollkästchens werden sie generiert. Für dieses Lernprogramm sind keine Implementierungsdeskriptoren erforderlich.
    Klicken Sie auf Weiter.
Der gesamte erforderliche Code für den Web-Service wird generiert.

Geschäftslogik zur Skeleton-Bean hinzufügen

Die Entwurfs-Bean für die Implementierung, die vom Web-Service-Assistenten AddressBookPortImpl.java generiert wurde, enthält keine Geschäftslogik. Sie enthält die Annotation @javax.jws.WebService, durch die die Laufzeit erfährt, dass es sich um einen JAX-WS-Web-Service handelt.

Sie müssen dieser Bean Code hinzufügen, damit die Web-Service-Funktion für das Adressbuch erwartungsgemäß funktioniert. Sie sollte nach dem Generieren des Web-Service automatisch in einem Editor geöffnet werden. Sollte das nicht der Fall sein, finden Sie sie an dieser Position: jwsAddressBook/Java Resources/src/com.addressbook.

  1. Ersetzen Sie die aktuelle Methode "saveAddress"
        public boolean saveAddress(PersonType person) {
            return false;
        }
    durch das folgende statische Feld und die folgende Methode:
    	private static Hashtable<String,AddressType> addresses = new Hashtable<String,AddressType>();
        public boolean saveAddress(PersonType person) {
        	addresses.put(person.getName(),person.getAddress());
            return true;
        }
  2. Ersetzen Sie die aktuelle Methode "findAddress"
        public AddressType findAddress(String name) throws FindAddressFault {
            return null;
        }
    durch Folgendes:
        public AddressType findAddress(String name) throws FindAddressFault {
            return addresses.get(name);
        }
  3. Es werden möglicherweise verschiedene Fehlermarkierungen angezeigt. Um diese zu korrigieren, müssen Sie Ihre Importe organisieren, indem Sie die Tastenkombination Strg+Umschalttaste+o drücken. Wählen Sie java.util.Hashtable für den Import aus. Danach sollten die Fehler abgeblendet sein.
  4. Speichern Sie die aktualisierte Bean für die Implementierung.

Web-Service mit dem generischen Service-Client testen

Der generische Service-Client ermöglicht das Testen eines Web-Service, ohne einen Client zu erstellen. Sie können die Operation auswählen, die Sie testen möchten, die erforderlichen Informationen eingeben und das Ergebnis wird im Statusfenster angezeigt.
  1. Wählen Sie die generierte WSDL-Datei jwsAddressBook/WebContent/WEB-INF/wsdl/AddressBook.wsdl aus, klicken Sie mit der rechten Maustaste und wählen Sie Web-Services > Mit generischem Service-Client testen aus. Alternativ können Sie den Service unter dem Serviceknoten des Projekts oder in der Ansicht "Services" unter dem JAX-WS-Web-Services-Knoten auswählen und den generischen Service-Client von dort aufrufen.
  2. Wählen Sie die Operation SaveAddress aus.
  3. Geben Sie in jedem Feld Werte ein und klicken Sie auf Aufrufen.
  4. Wählen Sie die Operation FindAddress auf.
  5. Geben Sie den Namen ein, den Sie beim Aufrufen der Operation "saveAddress" ausgewählt haben, und klicken Sie auf Aufrufen.
  6. Die Informationen, die Sie zu diesem Namen gespeichert haben, werden im Statusfenster angezeigt.

Prüfpunkt der Lerneinheit

Sie können jetzt mit der Lerneinheit 3: Web-Service-Client erstellen beginnen.

< Zurück | Weiter >
Symbol das den Typ des Artikels anzeigt. Artikel für Lerneinheit
Nutzungsbedingungen für Information Center | Feedback

Symbol für Zeitmarke Letzte Aktualisierung: 29.04.2014

Dateiname: jaxwstd_exercise12.html