Befehl wsgen für JAX-WS-Anwendungen
Das Befehlszeilentool wsgen generiert die erforderlichen Artefakte, die für JAX-WS-Anwendungen (Java™ API for XML Web Services) erforderlich sind, die auf der Basis von Java-Code entwickelt werden. Die generierten Artefakte sind mit Java 5 kompatibel und können auf verschiedene Java-Versionen und -Plattformen portiert werden.
Wenn Sie einen Bottom-up-Ansatz für die Entwicklung von JAX-WS-Web-Services verwenden, müssen Sie zum Generieren der erforderlichen JAX-WS-Artefakte das Befehlszeilentool wsgen verwenden, wenn Sie eine Serviceendpunktimplementierung als Ausgangspunkt verwenden.


- Alle zusätzlichen JAXB-Klassen (Java Architecture for XML Binding), die für das Marshaling und Unmarshaling des Nachrichteninhalts erforderlich sind.
- Eine WSDL-Datei, wenn das optionale Argument -wsdl angegeben ist. Die WSDL-Datei wird vom Tool wsgen tool nicht automatisch generiert.
Wenn Sie Tools von JAX WS V2.2 verwenden, werden Referenzen auf java.lang.RuntimeException und java.rmi.RemoteException und deren Unterklassen in der WSDL-Datei nicht mehr zugeordnet. Diese Verhaltensänderung stimmt überein mit der Konformitätsregel der Spezifikation JAX-WS V2.1, die im Abschnitt 3.7 der Spezifikation beschrieben ist. Diese Konformitätsregel legt fest, dass die Klassen "java.lang.RuntimeException" und "java.rmi.RemoteException" und die zugehörigen Unterklassen nicht als servicespezifische Ausnahmen behandelt und in der WSDL-Datei zugeordnet werden können.
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.WsGen in der Ant-Build-Umgebung, um das Tool "wsgen" aufzurufen. Damit diese Ant-Task richtig ausgeführt wird, müssen Sie Ant mit dem Script "ws_ant" aufrufen.

Error: Two classes have the same XML type name ....
Use @XmlType.name and @XmlType.namespace to assign different names to them...
Diese Fehlernachricht zeigt an, dass Sie Klassennamen
oder @XMLType.name-Werte mit demselben Namen haben, die sich jedoch in verschiedenen Java-Paketen befinden. Fügen Sie zur Vermeidung dieses Fehlers
die Klasse "@XML.Type.namespace" zur vorhandenen Annotation "@XMLType" hinzu, um die Unterscheidung zwischen den XML-Typen zu ermöglichen. gotchaBei JAX-WS-Anwendungen ist das Befehlszeilentool wsgen möglicherweise nicht in der Lage, gemeinsam genutzte Klassendateien im vollständigen Profil zu lokalisieren. Sie können die Position dieser Klassendateien mit der angepassten Eigenschaft com.ibm.websphere.webservices.WSDL_Generation_Extra_ClassPath angeben. Weitere Informationen finden Sie in der Dokumentation zu den angepassten Eigenschaften der Java Virtual Machine.
Syntax
Die Befehlszeilensyntax ist im Folgenden beschrieben:
![[Windows]](../images/windows.gif)
Stammverzeichnis_des_Anwendungsservers\bin\wsgen.bat [Optionen] Serviceimplementierungsklasse
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
Stammverzeichnis_des_Anwendungsservers/bin/wsgen.sh [Optionen] Serviceimplementierungsklasse
![[IBM i]](../images/iseries.gif)
Stammverzeichnis_des_Anwendungsservers/bin/wsgen [Optionen] Serviceimplementierungsklasse
Parameter
Der Name der Serviceimplementierungsklasse ist der einzige erforderliche Parameter. Die folgenden Parameter sind für den Befehl wsgen optional:
- -classpath <Pfad>
- Gibt die Position der Serviceimplementierungsklasse an.
- -cp <Pfad>
- Gibt die Position der Serviceimplementierungsklasse an. Diese Angabe ist mit -classpath <Pfad> identisch.
- -d <Verzeichnis>
- Gibt an, wohin die generierten Ausgabedateien geschrieben werden sollen.
- -extension
- Gibt an, ob angepasste Erweiterungen für Funktionen, die in der JAX-WS-Spezifikation nicht angegeben sind, zugelassen werden sollen. Die Verwendung von Erweiterungen kann dazu führen, dass die Anwendungen nicht portierbar sind oder nicht mit anderen Implementierungen interagieren können.
- -help
- Zeigt das Hilfemenü an.
- -keep
- Gibt an, ob die generierten Quellendateien aufbewahrt werden sollen.
- -r <Verzeichnis>
- Dieser Parameter wird nur zusammen mit dem Parameter -wsdl verwendet. Gibt an, wohin die generierte WSDL-Datei geschrieben werden soll.
- -s <Verzeichnis>
- Gibt das Verzeichnis an, in das die generierten Quellendateien geschrieben werden sollen.
- -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 ausgegeben, und es findet keine normale Befehlsverarbeitung statt.
- -wsdl [:Protokoll]
- Standardmäßig generiert das Tool wsgen keine WSDL-Datei. Dieser optionale Parameter bewirkt, dass wsgen eine WSDL-Datei generiert, und wird gewöhnlich nur verwendet, um einem Entwickler die Möglichkeit zu geben, eine WSDL-Datei vor der Implementierung des Endpunkts zu prüfen. Die Angabe Protokoll ist optional und gibt das Protokoll an, das in wsdl:binding verwendet wird. Die gültigen Werte für Protokoll sind soap 1.1 und Xsoap 1.2. Der Standardwert ist soap 1.1. Der Wert Xsoap 1.2 ist nicht der Standardwert und kann nur zusammen mit der Option -extension verwendet werden.
- -servicename <Name>
- Dieser Parameter wird nur zusammen mit dem Parameter -wsdl verwendet.
Gibt einen wsdl:service-Namen an, der in der WSDL-Dateí generiert werden soll. Beispiel:
-service name "{http://mynamespace/}MyService"
- -portname
- Dieser Parameter wird nur zusammen mit dem Parameter -wsdl verwendet.
Gibt einen wsdl:port-Namen an, der in der WSDL-Datei generiert werden soll. Beispiel:
-portname "{http://mynamespace/}MyPort"