Der Web-Service-Assistent unterstützt Sie beim Erstellen einer Skeleton-Bean aus einem vorhandenen WSDL-Dokument.
Die Skeleton-Bean enthält eine Reihe von Methoden, die den im WSDL-Dokument beschriebenen Methoden entsprechen. Bei der Erstellung der Bean
hat jede Methode eine einfache Implementierung, die Sie durch das Bearbeiten der Bean ersetzen.
Vorbereitende Schritte
Voraussetzungen:
- Wenn Sie WebSphere Application Server verwenden,
wird dringend empfohlen, den Server vor der Ausführung des Web-Service-Assistenten zu starten, weil der Start von
WebSphere Application Server ja nach Geschwindigkeit Ihres Computers
mehrere Minuten dauern kann.
Zum Starten des Servers wählen Sie ihn in der Ansicht "Server"
(Fenster > Sicht anzeigen > Server) aus, klicken Sie mit der rechten Maustaste und wählen Sie
dann Starten aus.
- Erstellen oder suchen und importieren Sie ein WSDL-Dokument in ein Projekt. Sie können nur WSDL-Dateien verwenden, die ein Element "service" enthalten.
Informationen zu diesem Vorgang
Gehen Sie wie folgt vor, um eine Skeleton-Java™-Bean
aus einem WSDL-Dokument mit der WebSphere-JAX-WS-Laufzeitumgebung zu erstellen:
Vorgehensweise
- Wechseln Sie in die Java EE-Perspektive (Fenster > Perspektive öffnen > Java EE).
- Wählen Sie in der Ansicht "Enterprise-Explorer" die WSDL-Datei aus, die Sie erstellt bzw. importiert haben.
- Klicken Sie auf Datei > Neu > Andere. Wählen Sie Web-Services aus, um die verschiedenen Web-Service-Assistenten
anzuzeigen. Wählen Sie den Assistenten Web-Service aus.
Klicken Sie auf Weiter.
- Seite "Web-Services" Wählen Sie Top-down-Web-Service für JavaBeans
als Web-Service-Typ aus.
Alternativ können Sie die folgenden Aktionen ausführen:
- Wählen Sie mit dem Schiebefeld die Phasen der Web-Service-Entwicklung aus, die Sie ausführen möchten.
Daraufhin werden in den verbleibenden Assistentenanzeigen verschiedene Standardwerte gesetzt:
- Entwickeln: Mit dieser Option wird die WSDL-Definition und die Implementierung des
Web-Service entwickelt. Dazu gehören Tasks wie die Erstellung der Module, die den generierten Code, WSDL-Dateien, Implementierungsdeskriptoren und ggf. Java-Dateien enthalten.
- Assemblieren: Mit dieser Option wird sichergestellt, dass das Projekt, das den Web-Service bzw. Web-Client hostet, bei Bedarf vom Zielanwendungsserver einer EAR-Datei zugeordnet wird.
- Implementieren: Mit dieser Option wird der Implementierungscode für den Service erstellt.
- Installieren: Mit dieser Option werden das Webmodul und die EAR-Dateien auf dem Zielserver installiert und konfiguriert.
Falls Änderungen an den Endpunkten der WSDL-Datei erforderlich sind, werden diese in dieser Phase vorgenommen.
- Starten: Mit dieser Option wird der Server gestartet, sobald der Service auf dem Server installiert wurde.
- Testen: Bei Auswahl dieser Option werden verschiedene Optionen für das Testen des Service bereitgestellt, z. B. die Verwendung des generischen Service-Clients, die Verwendung des Web-Service-Explorers oder die Verwendung der Beispiel-JSPs.
- Serverlaufzeit auswählen: Der Standardserver wird angezeigt.
Wenn Sie Ihren Service auf einem anderen Server implementieren möchten, klicken Sie auf den Link, um einen anderen Server anzugeben.
Diese Task unterstützt die folgenden Serverlaufzeitumgebungen:
- WebSphere Application Server ab Version 7.0
- WebSphere Application
Server Liberty Profile Version 8.5.5
- Web-Service-Laufzeit auswählen: Die Standardlaufzeitumgebung wird angezeigt.
Wenn Sie Ihren Service in der IBM® WebSphere-JAX-WS-Laufzeitumgebung implementieren möchten, klicken Sie auf den Link
"Laufzeit" und wählen Sie den Service in dem daraufhin angezeigten Fenster aus.
- Serviceprojekt und Service-EAR-Projekt auswählen:
Das im Arbeitsbereich ausgewählte Projekt wird angezeigt. Es werden nur Webprojekte mit aktivierter
Java 5.0-, Java 6.0- oder
Java 7.0-Facette unterstützt.
Wenn Sie ein anderes Projekt und eine andere EAR-Datei auswählen möchten, klicken Sie auf den Projektlink oder geben Sie einen Namen ein und
lassen Sie vom Assistenten automatisch ein Projekt erstellen. Stellen Sie sicher, dass das als Client-Webprojekt ausgewählte Projekt nicht das Service-Webprojekt ist, da der Service sonst mit den generierten Artefakten des Clients
überschrieben wird.
Bei JAX-WS-Web-Services können die Server- und Clientprojekte dieselbe EAR-Datei nutzen.
- Wenn Sie einen Client erstellen möchten, wählen Sie den Typ des zu generierendem Proxys aus und wiederholen Sie die
Schritte 1-4 für den Client. Der Client kann später anhand der Schritte erstellt werden, die im Abschnitt Web-Service-Client aus einem WSDL-Dokument mit der IBMWebSphere-JAX-WS-Laufzeitumgebung generieren beschrieben sind.
- Web-Service überwachen: Bei Auswahl dieser Option wird der Datenverkehr des Web-Service
über den TCP/IP-Monitor gesendet, was Ihnen ermöglicht, den vom Web-Service generierten SOAP-Datenverkehr zu überwachen und
diesen im Hinblick auf WS-I-Konformität zu testen. Alternativ können Sie einen TCP/IP-Monitor gemäß der Beschreibung unter im Abschnitt
Using the TCP/IP Monitor to test web services
manuelle einrichten.
- Seite "Konfiguration eines WebSphere-JAX-WS-Top-down-Web-Service":
- Ausgabeordner: Geben Sie die Position ein, an der das generierte Java-Skeleton
generiert wird, oder akzeptieren Sie den Standardwert.
- Zielpaket: Geben Sie den Paketnamen für die generierte Java ein oder akzeptieren Sie den Standardwert.
- Wrapperstil aktivieren: Aktiviert die WSDL-Java-Zuordnung des Wrapperstils. Für WSDL-Dokumente, die ein eingeschlossenes Muster des Typs "document/literal"
implementieren, wird ein Stammelement im XML-Schema deklariert, das Operationswrapper für einen Nachrichtenfluss
verwendet wird. Für die Anforderung und die Antwort sind gesonderte Wrapperelementdefinitionen vorhanden.
Das Element, dessen Namen mit der Operation übereinstimmt (das Wrapperelement),
wird so aufgeteilt, dass jedes seiner Inhaltselemente zu einem Parameter der generierten
Java-Methodensignatur wird.
- Serialisierbare JAXB-Klassen generieren: Wenn Sie in WebSphere Application Server und WebSphere(r)
Application Server Liberty Profile Version 8.5.5 die Java 6-Facette aktivieren, können Sie
JAXB-Klassen generieren, die die Schnittstelle "java.io.Serializable" implementieren. Für Klassen, die diese Schnittstelle nicht implementieren, werden keine Status
serialisiert und entserialisiert.
- MTOM-Unterstützung aktivieren: Wenn Sie dieses Kontrollkästchen auswählen, wird der SOAP Message Transmission Optimization Mechanism für die Optimierung der Übertragung binären Inhalts
aktiviert. Weitere Informationen zu MTOM finden Sie in der
Übersicht über MTOM.
- Version des zu generierenden JAX-WS-Codes: WebSphere Application Server Version 7.0 unterstützt Code, der
JAX-WS Version 2.0 oder 2.1 entspricht. WebSphere Application
Server Version 8.0, Version 8.5 und WebSphere(r) Application Server Liberty Profile
Version 8.5.5 unterstützen Code, der JAX-WS Version 2.0, Version 2.1 oder Version 2.2 entspricht.
- WSDL in Projekt kopieren: Wählen Sie diese Option aus, um die WSDL-Datei in das Serviceprojekt zu kopieren. Wenn Sie diese Option nicht auswählen, wird die erforderliche
WSDL bei Bedarf dynamisch zur Laufzeit generiert.
Diese Option ist hilfreich, wenn Sie vorhaben, den Client zu einem späteren Zeitpunkt zu erstellen oder die WSDL-Datei für andere Benutzer zu veröffentlichen.
- Serialisierbare JAXB-Klassen generieren: Wenn Sie in WebSphere Application Server und WebSphere(r)
Application Server Liberty Profile Version 8.5.5 die Java 6-Facette aktivieren, können Sie
JAXB-Klassen generieren, die die Schnittstelle "java.io.Serializable" implementieren. Für Klassen, die diese Schnittstelle nicht implementieren, werden keine Status
serialisiert und entserialisiert.
- JAX-WS- oder JAXB-Bindungsdateien angeben: Wenn Sie angepasste JAX-WS- oder JAXB-Bindungsdateien erstellt haben, wählen Sie dieses Kontrollkästchen aus, um diese Dateien
für die Erstellung des Web-Service zu verwenden. Nach Auswahl dieses Kontrollkästchens können Sie auf der nächsten Seite des Assistenten die angepassten Bindungsdeklarationsdateien anzeigen.
- Namen der Serviceimplementierungsklasse anpassen: Wählen Sie dieses Kontrollkästchen aus, wenn Sie die Zuordnung des Standardportnamens zum Namen der Serviceimplementierungsklasse ändern möchten.
- Schemabibliothek generieren: Wählen Sie diese Option aus, um die Generierung von Schemacode in einer Schemabibliothek zuzulassen.
Wenn Sie eine Schemabibliothek auswählen, können Sie die Zuordnungen zwischen XSD-Dokumenten oder Gruppen von XSD-Dokumenten zu einem Projekt auf einer der späteren Seiten anpassen.
- Web-Service-Implementierungsdeskriptor generieren: Für JAX-WS-Web-Services werden Implementierungsinformationen von der Laufzeitumgebung dynamisch generiert.
Statische Implementierungsdeskriptoren sind nicht mehr erforderlich. Wenn Sie dieses Kontrollkästchen auswählen, werden die Deskriptoren generiert.
- Anbietererweitungen zulassen: Wenn Sie dieses Kontrollkästchen auswählen, wird die Option
-extension zum Befehl wsgen oder wsimport hinzugefügt.
Die Option -extension gibt an, ob angepasste Erweiterungen für Funktionen, die nicht in der
JAX-WS-Spezifikation angegeben sind, aktiviert oder akzeptiert werden sollen.
Die Verwendung von Erweiterungen kann dazu führen, dass die Anwendungen
nicht portierbar sind oder nicht mit anderen Implementierungen interagieren können. Einzelheiten
finden Sie in den Abschnitten
Befehl wsgen für JAX-WS-Anwendungen und
Befehl wsimport für
JAX-WS-Anwendungen im Information Center von WebSphere Application Server.
- Je nach den Optionen, die Sie auf der vorherigen Seite ausgewählt haben, werden Sie möglicherweise aufgefordert, Ihre Web-Service-Implementierung auf den folgenden Seiten anzupassen:
- Seite "Angepasste Bindungsdeklarationen": Wenn Sie die Option zur Angabe von
JAX-WS- oder JAXB-Bindungsdateien ausgewählt haben, können Sie zu den Dateien auf dieser Seite navigieren.
- Seite "Konfiguration der Serviceimplementierung": Sie können für jeden in der WSDL-Datei definierten Port einen Namen für die Serviceimplementierungsklasse eingeben oder den Standardnamen akzeptieren.
- Seite "Schemaprojektkonfiguration": Wenn Sie die Option zum Generieren einer Schemabibliothek ausgewählt haben,
verwenden Sie diese Seite, um die Zuordnungen zwischen XSD-Dokumenten und Projekten anzupassen.
Diese Feature funktioniert nur, wenn alle Schemaabhängigkeiten in verschiedenen Zielnamespaces enthalten sind. Andernfalls treten
Kompilierungsfehler in ObjectFactory.java auf.
- Seite "Web-Service testen": Wenn Sie die Option zum Testen des Web-Service ausgewählt haben,
wählen Sie die Testfunktion für den generierten Web-Service aus und klicken Sie dann auf
Starten. Daraufhin wird der Web-Service in der Ansicht "Web-Service-Explorer" oder "Generischer Service-Client" geöffnet.
Wählen Sie die Operation aus, die Sie testen möchten, geben Sie die erforderlichen Informationen an
und klicken Sie dann auf Los. Das Ergebnis wird im Statusfenster angezeigt.
Klicken Sie auf Weiter.
- Seite "Konfiguration eines WebSphere-JAX-WS-Web-Service-Clients": Wenn Sie die Option zum Generieren
eines Clients ausgewählt haben, können Sie auf dieser Seite die folgenden Optionen für die Konfiguration angeben:
- Ausgabeordner: Die Position, an der der Client-Code generiert wird.
- Zielpaket: Der Assistent für Web-Service-Clients generiert mehrere
Java-Dateien. Er erstellt standardmäßig ein Paket
mit einem Namen, der auf dem in der WSDL-Datei angegebenen Namespace basiert. Sie können auch einen eigenen Paketnamen
angeben, um dieses Standardverhalten außer Kraft zu setzen.
- Portierbaren Client generieren: Wählen Sie dieses Kontrollkästchen aus, um Ihren Web-Service-Client-Code
von einer Maschine auf eine Maschine oder aus einer Instanz von
WebSphere Application
Server oder WebSphere Application Server Liberty Profile Version 8.5.5 in eine
andere zu verschieben.
Bei Auswahl dieser Option werden das WSDL-Dokument sowie alle
XML-Schemadokumente und sonstigen WSDL-Dokumente, von denen das WSDL-Dokument abhängig ist,
in das Clientprojekt unter "WEB-INF/wsdl" kopiert und es wird ein Element file:relativeURL, das auf diese
Kopie verweist, in den statischen Initialisierungsblock der Klasse des JAX-WS-Service injiziert.
- Asynchronen Aufruf für generierten Client aktivieren: Wenn Sie die Option zum Aktivieren eines asynchronen Clients auswählen, werden für jede Methode im Web-Service zwei weitere Methoden erstellt. Dabei handelt es sich Polling- und Callback-Methoden,
die die asynchrone Ausführung des Clients ermöglichen.
- JAX-WS- oder JAXB-Bindungsdateien angeben: Wenn Sie angepasste JAX-WS- oder JAXB-Bindungsdateien
erstellt haben, wählen Sie dieses Kontrollkästchen aus, um diese Dateien zum Erstellen des Web-Service-Clients zu verwenden.
Nach Auswahl dieses Kontrollkästchens können Sie auf der nächsten Seite des Assistenten die angepassten Bindungsdeklarationsdateien anzeigen.
- Namen der Client-Proxy-Klasse anpassen: Wählen Sie dieses Kontrollkästchen aus, wenn Sie die Zuordnung des Standardportnamens zum Namen der Serviceimplementierungsklasse ändern möchten.
- Seite "Angepasste Bindungsdeklarationen": Wenn Sie die Option zur Angabe von
JAX-WS- oder JAXB-Bindungsdateien ausgewählt haben, können Sie zu den Dateien auf dieser Seite navigieren.
- Seite "Konfiguration der Serviceimplementierung": Sie können für jeden definierten Port einen Namen für die
Proxy-Klasse eingeben oder den Standardnamen akzeptieren.
- Seite "Test des Web-Service-Clients":
- Generierten Proxy testen: Wenn Sie diese Option auswählen, wird der Beispielclient in einem Web-Browser gestartet, was Ihnen das Testen der Funktion ermöglicht.
- Testfunktion auswählen: Sie können den generierten Proxy im
generischen Service-Client oder im Web Services Explorer testen oder die
Beispiel-JSPs von JAX-WS 2.0 generieren und verwenden.
- Ordner: Wenn Sie sich für das Testen des Proxys über eine JSP entschieden haben, können Sie den Ordner auswählen, in dem sich die JSP befindet, und Sie können die Methoden auswählen, die in der JSP enthalten sind.
- Methoden: Wählen Sie bereitzustellenden Methoden aus. Wenn Sie sich für die Aktivierung des asynchronen Aufrufs entschieden haben, müssen die asynchronen Methoden ebenfalls aufgelistet werden.
- Test auf Server ausführen: Startet den Server automatisch.
Ergebnisse
Nach der Erstellung des Web-Service kann je nach ausgewählten Optionen Folgendes passieren:
- Die Bean für die Implementierung wird im Java-Editor geöffnet.
Diese Bean enthält Skeleton-Code, der zum Testen der Basisfunktion des Web-Service verwendet werden kann. Alternativ
können Sie die erforderliche Geschäftslogik für Ihren Service implementieren, bevor Sie ihn testen.
- Wenn Sie sich für das Testen des generierten Proxys mit JSPs der JAX-WS
Version 2.0 entschieden haben, wird der Proxy in einem Web-Browser unter der folgenden URL gestartet:
http://localhost:Port/WebprojektClient/sampleBeanname/Name_des_Web-Service/TestClient.jsp.
Sie können diese Beispielanwendung verwenden, um den Web-Service zu testen, indem Sie eine Methode auswählen, einen Wert
für die Methode eingeben und dann auf Aufrufen klicken.
Das Ergebnis der Methode wird im Ergebnisfenster angezeigt. Da es sich um ein
Java-Bean-Skeleton mit einfacher Methodenimplementierung
handelt, wird der Wert -3 zurückgegeben.
- Wenn Sie sich für das Testen des generierten Proxys mit dem Universal
Test Client entschieden haben, wird der Proxy in einem Browserfenster unter einer URL
ähnlich der folgenden gestartet: http://localhost:Port/UTC/preload?object=Beanpaket.Bean-Service-Proxy.
Erweitern Sie unter "Objekte" den Proxy-Stub, um die Methoden des Web-Service anzuzeigen.
Klicken Sie auf die Methode, die Sie testen möchten, geben Sie im
Teilfenster "Parameter" einen Wert ein und klicken Sie auf Aufrufen. Das Ergebnis
wird generiert und angezeigt.
- Wenn Sie sich für das Testen des Web-Service mit dem Web-Service-Explorer entschieden haben, wird der Explorer geöffnet. Wählen Sie die Operation aus, die Sie testen möchten, geben Sie die erforderlichen Informationen an
und klicken Sie auf Los.
Das Ergebnis wird im Statusfenster angezeigt.