Befehl WSDL2Java für JAX-RPC-Anwendungen

Führen Sie das Befehlszeilentool WSDL2Java für die WSDL-Datei aus, um Java™-APIs und Schablonen für Implementierungsdeskriptoren zu erstellen.

[z/OS]Das Befehlszeilentool WSDL2Java wird auf der z/OS-Plattform nicht unterstützt. Diese Funktionalität wird von den Assembliertools, die in der z/OS-Version von WebSphere Application Server enthalten sind, bereitgestellt.

Eine WSDL-Datei (Web Services Description Language) beschreibt einen Web-Service. Die Spezifikation Java API for XML-based Remote Procedure Call (JAX-RPC) 1.1 definiert eine Java-API-Zuordnung, die mit dem Web-Service interagiert. Die Spezifikation Web Services for Java Platform, Enterprise Edition (Java EE) definiert die Implementierungsdeskriptoren, die einen Web-Service in einer Java-EE-Umgebung implementieren. Der Befehl WSDL2Java wird für die WSDL-Datei ausgeführt, um Java-APIs und Schablonen für Implementierungsdeskriptoren entsprechend diesen Spezifikationen zu erstellen.

Bewährtes Verfahren Bewährtes Verfahren: Es wird empfohlen, in der WSDL-Datei oder im WSDL-Schema absolute Namespaces zu verwenden. Standardmäßig lässt das Tool WSDL2Java die Verwendung relativer Namespaces nicht zu. Relative Namespaces sind laut XML Plenary Interest Group veraltet, und ihre Verwendung führt dazu, dass XML Digital Signature gemäß der Spezifikation Canonical XML Version 1.0 fehlschlägt. Wenn Sie jedoch eine erstellte WSDL-Datei oder ein erstelltes WSDL-Schema verwenden, die bzw. das sich auf relative Namespaces stützt, können Sie unter bestimmten Bedingungen die Eigenschaft allowRelativeNamespace verwenden, um die Einschränkungen des relativen Namespace im Tool WSDL2Java zu umgehen. Weitere Informationen finden Sie in der Beschreibung der Eigenschaft. bprac
Sie können alle relativen Namespaces in absolute Namespaces konvertieren. Es folgt ein Beispiel für einen relativen Namespace:
targetNamespace="MyRelNamespace"
. Sie können den relativen Namespace in diesem Beispiel in einen absoluten Namespace ändern, indem Sie das Protokoll und URI-Basisdaten hinzufügen:
targetNamespace="http://www.sample.com/MyRelNamespace"

Befehlszeilensyntax

Die Befehlszeilensyntax ist im Folgenden beschrieben:
WSDL2Java [Argumente] WSDL-URI

Erforderliche Argumente

  • WSDL-URI

    Gibt das Verzeichnis der WSDL-Eingabedatei mit einem URI (Universal Resource Identifier) an. Sie können auch den Pfad einer regulären Datei verwenden, wenn sich die WSDL-Datei im lokalen Dateisystem befindet.

Wichtige Argumente

  • -role Java-EE-Rolle
    Gibt die Rolle für die Java-EE-Entwicklung an, die festlegt, welche Dateien generiert werden müssen. Die gültigen Argumente lauten wie folgt:
    • client

      Eine Kombination der Argumente develop-client und deploy-client.

    • deploy-client

      Generiert Bindungsdateien für die Cliententwicklung.

    • deploy-server

      Generiert Bindungsdateien für die Serverentwicklung.

    • develop-client (Standardeinstellung)

      Generiert Dateien für die Cliententwicklung.

    • develop-server

      Generiert Dateien für die Serverentwicklung.

    • server

      Eine Kombination der Argumente develop-server und deploy-server.

  • -container Java-EE-Container
    Gibt an, welcher Java-EE-Container verwendet werden soll. Die gültigen Argumente lauten wie folgt:
    • client

      Gibt den Client-Container an.

    • ejb

      Gibt einen EJB-Container (Enterprise JavaBeans) an.

    • none

      Gibt an, dass kein Container verwendet werden soll.

    • web

      Gibt einen Web-Container an.

    Für Clientrollen (siehe Option "-role") ist das Standardargument none. Für Serverrollen muss als Container ejb oder web gewählt werden. Für Entwicklung und Implementierung muss dieselbe Containeroption verwendet werden.
  • -output Verzeichnis

    Legt das Stammverzeichnis für ausgegebene Dateien fest.

  • -inputMappingFile Zuordnungsdatei

    Gibt den Dateinamen der Zuordnungsdatei für Web Services for Java EE an.

  • -introspect

    Verwendet vorhandene Java-Beans mit einer neuen Web-Service-API.

    In einigen Szenarien empfiehlt es sich, vorhandene Java-Klassen zu verwenden, anstatt neue Klassen zu generieren. Mit der Option -introspect wird der Befehl WSDL2Java angewiesen, beim Generieren neuer Klassen vorhandene Java-Klassen zu überprüfen. Die vorhandenen Klassen werden auf Konformität mit der JAX-RPC-Spezifikation geprüft. Beispiel:

    Angenommen, Sie haben die folgende Java-Bean:
    public class Bean {
    		public Date x;
    }
    Die WSDL-Datei definiert x als xsd:dateTime. Wenn Sie die Option "-introspect" nicht angeben, generiert der Befehl WSDL2Java eine Java-Bean ähnlich der folgenden:
    public class Bean {
    		private Calendar x;
    		public void setx(Calendar value) (x=value;)
    		public Calendar getX() { return x;)
    }
    Der Befehl WSDL2Java verwendet die Option "-introspect", um die ursprüngliche Java-Bean zu überprüfen und um Klassen zu generieren, die mit den vorhandenen Java-Beans kompatibel sind.
  • -classpath Pfade

    Definiert einen alternativen Klassenpfad, in dem Java-Klassen gesucht werden.

  • -noDataBinding

    Hebt die Bindung zwischen XML-Typen und Java-Typen auf. Stattdessen wird jeder XML-Typ einer javax.xml.soap.SOAPElement-Schnittstelle zugeordnet, die in der Spezifikation SOAP with Attachments API for Java (SAAJ) definiert ist.

    Das JAX-WS-Programmiermodell (Java API for XML Web Services) unterstützt SAAJ 1.2 und 1.3.

    Das JAX-RPC-Programmiermodell unterstützt SAAJ 1.2.

    Die Java-Programmiermodelle definieren Java-Zuordnungen für eine Untergruppe von XML-Typen. Verschiedene XML-Typen können Java-Beans und primitiven Typen nicht zugeordnet werden. In dieser Situation ordnet der Befehl WSDL2Java den Typ einem SAAJ SOAPElement zu. Ein SAAJ SOAPElement ist eine generische Darstellung des Elements in der Nachricht. Die Methoden SOAPElement können für die Überprüfung des Elements und der ungeordneten Elemente verwendet werden.

    In einigen Szenarien empfiehlt es sich, ausschließlich die generische SOAPElement-Zuordnung zu verwenden. Wenn Sie mehr über die Verwendung von SOAPElement, erfahren möchten, lesen Sie die Informationen zur Schnittstelle "SOAP with Attachments API for Java" und zu den angepassten Daten-Bindern für JAX-RPC-Anwendungen.

    Eine vollständige Liste der unterstützten Standards und Spezifikationen finden Sie in der Dokumentation zu den Web-Service-Spezifikationen und den Anwendungsprogrammierschnittstellen.

  • -help

    Zeigt eine Hilfenachricht an und verlässt den Vorgang.

  • -helpX

    Zeigt eine Hilfenachricht für erweiterte Optionen an. Mögliche Optionen:

  • -verbose

    Zeigt Verarbeitungsinformationen einschließlich der Namen der generierten Dateien an.

  • -NStoPkg Namespace=Paket

    Standardmäßig werden Paketnamen automatisch von Namespacezeichenfolgen in der WSDL-Datei abgeleitet. Wenn der Namespace beispielsweise das Format http://x.y.com or urn:x.y.com hat, ist das entsprechende Paket com.y.x.

    Mit dem Argument "-NStoPkg", das Sie so oft wie nötig wiederholen können, haben Sie die Möglichkeit, eine eigene Zuordnung (für jede eindeutige Namespacezuordnung) anzugeben. Wenn die WSDL-Datei z. B. den Namespace urn:AddressFetcher2 enthält und Sie Dateien, die aus den Objekten in diesem Namespace generiert wurden, im Paket "samples.addr" ablegen möchten, geben Sie mit dem Befehl WSDL2Java den Parameter "-NStoPkg "http://urn:AddressFetcher2/"=samples.addr" an.

  • -timeout Sekunden

    Gibt an (in Sekunden), wie lang der Befehl WSDL2Java auf eine Antwort des WSDL-URI wartet, bevor der Vorgang abgebrochen wird. Die Standardeinstellung ist 45 Sekunden; durch den Wert -1 wird das Zeitlimit inaktiviert.

  • -genResolver

    Generiert eine Klasse vom Typ absolute-import resolver. Diese Klasse wird verwendet, um den Inhalt der importierten WSDL-Dateien aufzuzeichnen, die vom vom WSDL-URI verwendet werden. Die Klasse kann auch für zukünftige Ausführungen des Befehls WSDL2Java verwendet werden. Diese Flexibilität ist wünschenswert, wenn die importierten WSDL-Dateien sich auf einem fernen System befinden und der Zugriff auf die Dateien nicht möglich. Wenn ein "import resolver" verwendet wird, ist ausgeschlossen, dass eine ferne WSDL-Datei zur Laufzeit einen anderen Inhalt hat als während der Entwicklung. Die generierte Klasse erhält den Namen _AbsoluteImportResolver.java. Kompilieren und packen Sie diese Klasse zusammen mit den anderen Java-Klassen, die der Befehl WSDL2Java generiert.

  • -useResolver Resolver-Klasse

    Gibt eine Klasse vom Typ absolute-import resolver an, die bei der Syntaxanalyse verwendet werden soll. Diese Klasse muss während einer früheren Ausführung des Befehls WSDL2Java erstellt werden, bei der die Option "-genResolver" verwendet wird. Die Klasse muss in der Variablen CLASSPATH enthalten sein.

  • -deployScope Argument
    Zeigt an, wie die Serverimplementierung implementiert werden soll. Die gültigen Argumente lauten wie folgt:
    • Application

      Verwendet eine Instanz der Implementierungsklasse für alle Anforderungen.

    • Request

      Erstellt für jede Anforderung eine neue Instanz der Implementierungsklasse.

    • Session

      Erstellt für jede Sitzung eine neue Instanz der Implementierungsklasse.

Andere Argumente

  • -user ID

    Der Anmeldebenutzername, der für den Zugriff auf den WSDL-URI verwendet wird.

  • -password Kennwort

    Das Anmeldekennwort zur Benutzer-ID, das für den Zugriff auf den WSDL-URI verwendet wird.

  • -all

    Generiert Java-Dateien für alle Typen, auch für die nicht referenzierten Dateien.

  • -allowRelativeNamespace true oder false

    Gibt an, ob die Einschränkungen für den relativen Namespace aufgehoben werden sollen. Wenn Sie -allowRelativeNamespace=true angeben, werden die Einschränkungen für den relativen Namespace aufgehoben.

    Fehler vermeiden Fehler vermeiden: Verwenden Sie diese Eigenschaft nur, wenn Sie eine erstellte WSDL-Datei oder ein erstelltes WSDL-Schema haben, die bzw. das sich auf einen relativen Namespace stützt, und Sie mit einer definierten Gruppe von Anbietern, die die Verwendung relativer Namespaces zulassen, interagieren möchten. gotcha
  • -debug

    Gibt Debug-Informationen aus.

  • -genJava Argument
    Generiert Java-Dateien. Die gültigen Argumente lauten wie folgt:
    • IfNotExists, default
    • Overwrite
    • No
  • -javaSearch Argument
    Die Option -javaSearch wird zusammen mit der Option -genJava verwendet. Wenn -genJava IfNotExists angegeben ist, verwenden Sie die Option -javaSearch, um festzulegen, wie die Dateiexistenz ermittelt wird.
    • File (Standardeinstellung): Sucht eine Datei im Ausgabeverzeichnis.
    • Classpath: Sucht eine Klasse in der Variablen CLASSPATH.
    • Both: Sucht eine Datei im Ausgabeverzeichnis oder eine Klasse in der Variablen CLASSPATH.
  • -genXML Argument
    Generiert die Dateien mit der Erweiterung .xml und .xmi. Die gültigen Parameter lauten wie folgt:
    • IfNotExists, default
    • Overwrite
    • No
  • -genImplSer true oder false

    Gibt an, dass jede generierte Java-Bean die Schnittstelle "java.io.Serializable" implementiert. Die Standardeinstellung ist false.

  • -genEquals true oder false

    Gibt an, dass jede generierte Java-Bean die Methoden equals und hashCode enthält. Die Standardeinstellung ist "false".

  • -noWrappedOperations

    Inaktiviert die Erkennung gepackter Operationen. Es werden Java-Beans für die Anforderungs- und Antwortnachrichten generiert.

  • -noWrappedArrays

    Inaktiviert die Erkennung gepackter Arrays.

  • -fileNStoPkg Dateiname

    Gibt die Datei für die Namespace/Paket-Zuordnung an. Die Standardeinstellung ist NStoPKG.properties.

  • service Name des WSDL-Service

    Generiert nur Dateien für den installierten WSDL-Service.

  • -testCase

    Generiert die Schablone für einen JUnit-Test zum Überprüfen von Web-Services. JUnit ist ein einfaches Gerüst, mit dem reproduzierbare Tests geschrieben werden können.


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_wsdl2java
Dateiname:rwbs_wsdl2java.html