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.
Anmerkung: SOAP
over JMS-Web-Services werden für WebSphere Application Server Version 8.0 und höher unterstützt.
Es ist jedoch keine Unterstützung für WebSphere Application Server Liberty Profile
Version 8.5.5 verfügbar. Wenn Sie SOAP over JMS verwenden möchten, müssen Sie in Ihrer WSDL-Datei einen der folgenden URI-Werte für das Transportattribut verwenden:
- http://www.w3.org/TR/soapjms/
- http://www.w3.org/2010/soapjms/
Weitere Informationen zu SOAP over-JMS-Deklarationen in WSDL-Dateien finden Sie in den Spezifikationen auf der Webseite
SOAP over Java™ Message Service 1.0: Working
Draft.
- Erstellen Sie ein EJB-Projekt und fügen Sie es einem neuen EAR-Projekt hinzu.
- Erstellen Sie als Routerprojekt ein leeres Webprojekt, wenn Sie SOAP over HTTP als Transportmethode verwenden, oder ein EJB-Projekt, wenn Sie SOAP over
JMS als Transportmethode verwenden. Das Projekt, das Sie erstellen, muss derselben EAR-Datei wie das EJB-Projekt hinzugefügt werden, das die Enterprise-Bean enthält.
Weitere Informationen zu Routermodulen finden Sie im Abschnitt
Routermodule erstellen.
- Wenn Sie SOAP over JMS verwenden möchten, müssen Sie gemäß der Beschreibung im Abschnitt
Server und Serverkonfiguration für
SOAP over JMS erstellen einen Server und eine Serverkonfiguration für JMS erstellen.
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-EJB-Web-Service als Web-Service-Typ aus.
Optional 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.
- Server 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.
- Laufzeitumgebung auswählen: Die Standardlaufzeit wird angezeigt. Wenn Sie Ihren Service in der IBM® JAX-WS-Laufzeitumgebung implementieren möchten, klicken Sie auf den Link
"Laufzeit" und wählen Sie den Service in dem daraufhin angezeigten Fenster aus.
Diese Task unterstützt die folgenden Serverlaufzeitumgebungen:
- WebSphere Application Server ab Version 7.0
- WebSphere Application
Server Liberty Profile Version 8.5.5
- Serviceprojekt auswählen: Das in Ihrem Arbeitsbereich ausgewählte Projekt wird angezeigt.
Es werden nur EJB-Projekte 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 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: Wenn Sie diese Option auswählen, wird der Web-Service-Datenverkehr
über den TCP/IP-Monitor gesendet, was Ihnen ermöglicht, den vom Web-Service generierten
SOAP-Datenverkehr zu überwachen und auf WS-I-Konformität hin zu überprüfen.
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.
- Veröffentlichen Sie den Web-Service.
- Seite "Konfiguration eines WebSphere-JAX-WS-Top-down-EJB-Web-Service":
- Ausgabeordner: Geben Sie die Position ein, an der das generierte EJB-Skeleton
generiert wird, oder akzeptieren Sie den Standardwert.
- Zielpaket: Geben Sie den Paketnamen für die generierte Java ein oder akzeptieren Sie den Standardwert.
- EJB-Web-Service-Bindung: Geben Sie an, ob Ihr Web-Service HTTP- oder JMS-Bindungen verwendet.
- 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.
Einfacher ausgedrückt, 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.
- 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 dieser Option 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 Implementierungsdeskriptoren 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 "Konfiguration der WebSphere-JAX-WS-JMS-Bindung":
Wenn Sie JMS als Transportmethode für Ihren Web-Service ausgewählt haben, müssen Sie auf dieser Seite die Informationen zur Bindung eingeben.
- JMS-Ziel: Wählen Sie "Warteschlange" oder "Topic" als Zieltyp aus.
- JNDI-Name des Ziels: Der JNDI-Name der Zielwarteschlange bzw. des Zieltopics.
- JMS-Verbindungsfactory: Der JNDI-Name der Verbindungsfactory.
- Name für Ausgangskontextfactory: Der Name der zu verwendenden Ausgangskontextfactory.
Dieser Name wird der Eigenschaft "java.naming.factory.initial" zugeordnet.
- URL des JNDI-Providers: Diese URL wird der Eigenschaft "java.naming.provider.url" zugeordnet.
- Übermittlungsmodus: Diese Einstellung gibt an, ob die Anforderungsnachricht persistent ist oder nicht.
- Laufzeit für Anforderungsnachricht: Die Laufzeit der Anforderungsnachricht in Millisekunden.
Der Wert 0 definiert eine unbegrenzte Laufzeit.
- Priorität für JMS-Anforderungsnachricht: Die JMS-Priorität der Anforderungsnachricht.
0 ist die niedrigste Priorität und 9 die höchste.
- Name für Antwort: Der Name der Portkomponente, an die die Anforderung gesendet wird.
- Benutzer-ID für Verbindungsfactory: Die für den Zugriff auf die Verbindungsfactory zu verwendende Benutzer-ID.
- Kennwort für Verbindungsfactory: Das für den Zugriff auf die Verbindungsfactory zu verwendende Kennwort.
- SOAP/JMS-Interoperabilitätsprotokoll verwenden: Wenn Sie diese Option auswählen, wird sichergestellt, dass der
Web-Service mit dem von der W3C
SOAP-JMS Binding Working Group definierten Protokoll konform ist. Weitere Informationen finden Sie auf der Website
Charter of the SOAP-JMS Binding Working Group.
- Angepasste JMS-Eigenschaften definieren: Wenn Sie diese Option auswählen, wird eine Seite aufgerufen, auf der Sie Eigenschaftswertpaare eingeben können.
- 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 "Konfiguration des WebSphere-JAX-WS-Routerprojekts": Diese Seite wird angezeigt, wenn angezeigt, wenn
WebSphere Application
Server als Ziellaufzeitumgebung verwendet wird. Bei der Verwendung von WebSphere Application Server Liberty Profile
Version 8.5.5 wird diese Seite nicht angezeigt.
- HTTP-Router: Geben Sie den Namen des Projekts ein, das Sie als Routermodul verwenden möchten. Ein Routermodul
stellt einen Web-Service-Endpunkt für einen bestimmten Transport dar.
- JMS-Router: Geben Sie den Namen des Projekts ein, das Sie als Routermodul verwenden möchten. Ein Routermodul
stellt einen Web-Service-Endpunkt für einen bestimmten Transport dar.
- MDB-Implementierungsmechanismus: Wählen Sie "JMS-Aktivierungsspezifikation" oder "Listener-Port" als Message-driven Bean-Implementierungsmechanismus aus.
- JNDI-Name der Aktivierungsspezifikation: Geben Sie den JNDI-Namen der
Aktivierungsspezifikation ein, die für die Implementierung dieser Message-driven Bean verwendet werden
soll. Dieser Name muss mit dem Namen einer Aktivierungsspezifikation übereinstimmen,
die Sie für WebSphere Application
Server definieren.
- Name des Listener-Eingabeports: Geben Sie den Listener-Port-Namen des Routermoduls ein.
- Seite "Web-Service testen": Wenn Sie die Option zum Testen des Web-Service aus Schritt 4a 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.
Beachten Sie, dass Sie die Ansicht "Web-Service-Explorer" nur zum Testen von Web-Services verwenden können, die HTTP-Transporte verwenden.
Wählen Sie die Operation aus, die Sie testen möchten, geben Sie die erforderlichen Informationen ein und klicken Sie 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: Dies ist 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 einen
Paketnamen, der auf dem in der WSDL-Datei angegebenen Namensbereich basiert. Sie können auch einen eigenen
Paketnamen angeben, um dieses Standardverhalten außer Kraft zu setzen.
- Portierbaren Client generieren: Wenn Sie dieses Kontrollkästchen auswählen, können Sie Ihren Web-Service-Client-Code
von einer Maschine auf eine Maschine oder aus einer Instanz von
WebSphere Application
Server oder WebSphere(r) Application Server Liberty Profile Version 8.5.5 in eine andere 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.
Bei diesen Methoden handelt es sich um Polling- und Callback-Methoden, die eine asynchrone Funktionsweise
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.
Bei Auswahl dieses Kontrollkästchens können Sie auf der nächsten Seite des Assistenten
zu den angepassten Bindungsdeklarationsdateien navigieren.
- 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.
- 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 Implementierungsdeskriptoren generiert.
- Version des zu generierenden JAX-WS-Codes: Für WebSphere Application Server Version 7.0
können Sie JAX-WS 2.0- oder JAX-WS-2.1-kompatiblen Code generieren. Für WebSphere Application Server
Version 8.0, Version 8.5 und WebSphere Application
Server Liberty Profile Version 8.5.5 können Sie
JAX-WS 2.0-, JAX-WS 2.1- oder JAX-WS-2.2-kompatiblen Code generieren.
- 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 Funktionalität 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. Daraufhin wird das Ergebnis
generiert.
- 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 ein und klicken Sie auf Los. Das Ergebnis wird im
Statusfenster angezeigt.