Befehl wsimport für JAX-WS-Anwendungen

Das Befehlszeilentool "wsimport" verarbeitet eine vorhandene WSDL-Datei (Web Services Description Language) und generiert die erforderlichen Artefakte für die Entwicklung von JAX-WS-Web-Service-Anwendungen (Java™ API for XML-Based Web Services). Die generierten Artefakte sind mit Java 5 kompatibel und können auf verschiedene Java-Versionen und -Plattformen portiert werden.

Das Befehlszeilentool wsimport unterstützt den Top-down-Ansatz für die Entwicklung von JAX-WS-Web-Services. Wenn Sie mit einer vorhandenen WSDL-Datei beginnen, verwenden Sie das Befehlszeilentool wsimport, um die erforderlichen portierbaren JAX-WS-Artefakte zu generieren.

Unterstützte Konfigurationen Unterstützte Konfigurationen: Die Befehlszeilentools wsimport, wsgen, schemagen und xjc werden auf der Plattform z/OS nicht unterstützt. Diese Funktionalität wird von den Assembliertools, die in der z/OS-Version von WebSphere Application Server enthalten sind, bereitgestellt. Weitere Informationen zur Verwendung dieser Befehlszeilentools für JAX-WS-Anwendungen finden Sie in der Dokumentation zu diesen Tools.sptcfg
Bewährtes Verfahren Bewährtes Verfahren: WebSphere Application Server stellt Tools für Java API for XML-Based Web Services (JAX-WS) und Java Architecture for XML Binding (JAXB) bereit. Die Befehlszeilentools wsimport, wsgen, schemagen und xjc befinden sich im Verzeichnis "Stammverzeichnis_des_Anwendungsservers\bin\" von WebSphere Application Server Traditional. Die Befehle xjc und schemagen befinden sich im Verzeichnis Stammverzeichnis_des_Anwendungsservers\jaxb\bin\ im Liberty-Profil. In einigen Fällen unterstützen die von den WebSphere Application Server-Tools und den JDK-Tools generierten Artefakte dieselben Spezifikationsstufen. Im Allgemeinen sind die von den JDK-Tools generierten Artefakte in kompatible Laufzeitumgebungen portierbar. Es empfiehlt sich jedoch, die WebSphere-Tools zu verwenden, um eine nahtlose Integration in die Umgebung von WebSphere Application Server zu erreichen und die Features zu nutzen, die möglicherweise nur in WebSphere Application Server unterstützt werden. Um den Vorteil der JAX-WS- und JAXB-V2.2-Tools zu nutzen, verwenden Sie die mit Application Server bereitgestellten Tools, die sich im Verzeichnis Stammverzeichnis_des_Anwendungsservers\bin\ befinden.bprac
Anmerkung: Sie können die Befehlszeilentools wsimport, wsgen, schemagen und xjc mit Liberty und mit WebSphere Application Server Traditional verwenden.
Das Tool wsimport liest eine vorhandene WSDL-Datei und generiert die folgenden Artefakte:
  • Serviceendpunktschnittstelle - Die Serviceendpunktschnittstelle ist eine annotierte Java-Darstellung der WSDL-Datei für den Web-Service. Diese Schnittstelle wird für die Implementierung von JavaBeans-Endpunkten bzw. die Erstellung dynamischer Proxy-Clientinstanzen verwendet.
  • Erweiterungsklasse javax.xml.ws.Service - Diese generierte Klasse erweitert die Klasse javax.xml.ws.Service. Diese Klasse wird zum Konfigurieren und Erstellen dynamischer Proxy- und Dispatch-Instanzen zu konfigurieren und zu erstellen.
  • Erforderliche Data-Beans, einschließlich aller JAXB-Beans (Java Architecture for XML Binding), die zum Modellieren der Web-Service-Daten erforderlich sind.
Mit der WSDL-Datei und Schemadokumenten können Sie die generierten Artefakte zusammen mit der Endpunktimplementierung, die Sie implementieren möchten, in eine WAR-Datei (Web Archive) packen.
Unterstützte Konfigurationen Unterstützte Konfigurationen: Sie müssen die folgenden Voraussetzungen erfüllen, um das Tool wsimport ordnungsgemäß nutzen zu können:
  • Sie müssen alle Services in der WSDL-Hauptdatei definieren. Services, die in einer importierten WSDL-Datei definiert werden, werden vom Tool wsimport nicht verarbeitet.
  • Wenn Sie das Tool wsimport für eine WSDL-Datei ausführen, die das Muster "Document" oder "Literal" implementiert, müssen die complexTypes-Elemente, die die Ein- und Ausgabetypen definieren, aus eindeutigen Parameternamen bestehen, damit bei Verwendung des portType Namenskonflikte in der Parameterliste für die Operation vermieden werden.
  • Wenn Sie das Tool wsimport ausführen und einen ?wsdl-URI (Uniform Resource Identifier) als Parameter für eine WSDL-Datei übergeben, sollten Sie sich vergewissern, dass Sie den tatsächlichen, aufgelösten WSDL-URI verwenden. Im vollständigen Profil löst das Tool wsimport den ?wsdl-URI richtig auf, aber andere relative URIs, die referenziert werden, werden möglicherweise nicht richtig aufgelöst. Im Liberty-Profil löst das Tool wsimport den ?wsdl-URI und andere referenzierte relative URIs richtig auf.
sptcfg

Sie können diese JAX-WS-Tools nicht nur über die Befehlszeile, sondern auch in den Ant-Build-Umgebungen für WebSphere Application Server Traditional aufrufen. Verwenden Sie die Ant-Task com.sun.tools.ws.ant.WsImport in der Ant-Build-Umgebung, um das Tool "WsImport" aufzurufen. Damit diese Ant-Task richtig ausgeführt wird, müssen Sie Ant mit dem Script "ws_ant" aufrufen.

Syntax

Die Befehlszeilensyntax ist im Folgenden beschrieben:

[Windows]
Stammverzeichnis_des_Anwendungsservers\bin\wsimport.bat [Optionen] WSDL-URI
[AIX][HP-UX][Linux][Solaris]
Stammverzeichnis_des_Anwendungsservers/bin/wsimport.sh [Optionen] WSDL-URI
[IBM i]
Stammverzeichnis_des_Anwendungsservers/bin/wsimport [Optionen] WSDL-URI

Parameter

Der WSDL-URI ist der einzige erforderliche Parameter. Die folgenden Parameter sind für den Befehl wsimport optional:

-b <Pfad>
Gibt die externen JAX-WS- oder JAXB-Bindungsdateien an. Mit der Option -b können Sie mehrere JAX-WS- und JAXB-Bindungsdateien angeben. Jede Datei muss jedoch mit einer eigenen Option -b angegeben werden.
-B <JAXB-Option>
Gibt an, dass diese Option an den JAXB-Schema-Compiler übergeben werden soll.
-catalog
Gibt die Katalogdatei für die Auflösung externer Entitätsreferenzen an. Unterstützt werden die Formate TR9401, XCatalog und OASIS XML Catalog.
-d <Verzeichnis>
Gibt an, wohin die generierten Ausgabedateien geschrieben werden sollen.
-extension
Gibt an, ob angepasste Erweiterungen für Funktionen akzeptiert werden, die nicht in der JAX-WS-Spezifikation angegeben sind. Die Verwendung angepasster Erweiterungen kann dazu führen, dass die Anwendungen nicht portierbar sind oder nicht mit anderen Implementierungen interagieren können.
-help
Zeigt das Hilfemenü an.
-httpproxy:<Host>:<Port>
Gibt einen HTTP-Proxy an. Der Standardportwert ist 8080.
-keep
Gibt an, ob die generierten Quellendateien aufbewahrt werden sollen.
-p <Paketname>
Gibt ein Zielpaket an und überschreibt jede WSDL-Datei und Schemabindungsanpassung für den Paketnamen und den Standardalgorithmus für Paketnamen, die in der JAX-WS-Spezifikation definiert sind.
-quiet
Gibt an, dass die Ausgabe des Tools wsimport unterdrückt werden soll.
-s <Verzeichnis>
Gibt das Verzeichnis an, in das die generierten Quellendateien geschrieben werden sollen.
-target <Version>
Gibt an, dass Code, der mit einer bestimmten Version der JAX-WS-Spezifikation kompatibel ist, generiert werden soll. Geben Sie Version 2.0 oder 2.1 an, um Code zu generieren, der mit der Spezifikation JAX-WS 2.0 oder JAX-WS 2.1 kompatibel ist. Geben Sie Version 2.1 an, um Code zu generieren, der mit der Spezifikation JAX-WS 2.1 kompatibel ist. Der Standardwert ist Version 2.2 und generiert kompatiblen Code für die Spezifikation JAXB 2.2.
Die Option target ist für das Liberty-Profil erforderlich.
-verbose
Gibt an, dass Nachrichten über die Aktionen des Compilers ausgegeben werden sollen.
-version
Gibt die Versionsinformationen aus. Wenn Sie diese Option angeben, wird nur die Versionsinformation in die Ausgabe eingefügt und es findet keine normale Befehlsverarbeitung statt.
-wsdlLocation
Gibt den Wert für @WebServiceClient.wsdlLocation an.
Unterstützte Konfigurationen Unterstützte Konfigurationen: Das Tool wsimport setzt den Wert für @WebService.wsdlLocation weder standardmäßig noch bei Angabe des Attributs "-wsdlLocation". Das Befehlszeilentool wsimport aktualisiert lediglich die Annotation @WebServiceClient.wsdlLocation. Sie können die Annotation @WebService.wsdlLocation mit einem relativen URL, der die Position der WSDL-Datei (Web Services Description Language) angibt, manuell aktualisieren. Wenn die Annotation @WebService.wsdlLocation sich in einer Endpunktimplementierungsklasse befindet, muss der Wert ein relativer URL und das referenzierte WSDL-Dokument im Anwendungspaket enthalten sein. sptcfg
Fehler vermeiden Fehler vermeiden: Wenn Sie einen HTTPS-URL für den Parameter "-wsdlLocation" angeben, generiert das Tool wsimport eine Serviceklasse mit einem Konstruktor "no-argument", der ungültig ist. Vermeiden Sie es, den Servicekonstruktor "no-argument" zur Instanziierung des Service zu verwenden. Übergeben Sie stattdessen den HTTPS-URL an einen der Serviceklassenkonstruktoren, der einen WSDL-URL als Argument verwendet, z. B.:
MyService("https://example.ibm.com/My?wsdl");
gotcha
-clientJar
wsimport in der Service-WSDL generiert die notwendigen Klassen für den Aufruf des Web-Service. Es werden jedoch nicht alle von der JAX-WS-Laufzeitkomponente vorausgesetzten Informationen in der Serviceendpunktschnittstelle oder im Web-Service-Client über Web-Service-Standardannotationen erfasst. Die generierte Klasse hat die Position der WSDL, sodass sie die zusätzlichen Metadaten des Service zur Laufzeit abrufen kann. Es ist jedoch eine zusätzliche Verbindung erforderlich, um jedes Mal, wenn eine Serviceinstanz erstellt wird, auf die Metadaten zugreifen zu können. Das erhöht die Netzauslastung. Wenn Sie die Option -clientJar für wsimport verwenden, werden die WSDL und das Schema automatisch heruntergeladen und alle generierten clientseitigen Artefakte werden in einer JAR-Datei gepackt. Daher können Sie die generierte JAR-Datei mit dieser neuen Option in den Klassenpfad aufnehmen und müssen die WSDLs nicht jedes Mal, wenn eine Serviceinstanz erstellt wird, vom Endpunkt abrufen. Damit vermeiden Sie eine unnötige Erhöhung der Netzauslastung.

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_wsimport
Dateiname:rwbs_wsimport.html