Commande wsgen pour les applications JAX-WS
L'outil de ligne de commande wsgen génère les artefacts nécessaires requis pour les applications JAX-WS (Java™ API for XML Web Services) lors du démarrage à partir du code Java. Les artefacts générés sont compatibles avec Java 5, ce qui les rend portables sur différentes versions et plateformes Java.
Lors de l'utilisation d'une approche ascendante pour développer des services Web JAX-WS et que vous démarrez à partir d'une implémentation de noeud final de service, utilisez l'outil wsgen pour générer les artefacts JAX-WS requis.


- Toute classe JAXB (Java Architecture for XML Binding) supplémentaire requise pour assembler et désassembler les contenus d'un message.
- Un fichier WSDL, si l'argument -wsdl facultatif est spécifié. L'outil wsgen ne génère pas automatiquement le fichier WSDL.
Lorsque vous utilisez les outils JAX-WS V2.2, les références java.lang.RuntimeException et java.rmi.RemoteException et leurs sous-classes ne sont plus mappées dans le fichier WSDL. Ce changement de comportement répond à la règle de conformité à la spécification JAX-WS V2.1 décrite à la section 3.7 de celle-ci. Cette règle de conformité spécifie que les classes java.lang.RuntimeException et java.rmi.RemoteException et leurs sous-classes ne peuvent pas être traitées comme des exceptions spécifiques à un service ni mappées dans le fichier WSDL.
Outre l'utilisation des outils à partir de la ligne de commande, vous pouvez appeler ces outils JAX-WS à partir de l'environnement de construction Ant pour WebSphere Application Server Traditional. Utilisez la tâche Ant com.sun.tools.ant.WsGen à partir de l'environnement de génération Ant pour appeler l'outil wsgen. Pour fonctionner correctement, la tâche Ant doit être appelée par le script ws_ant.

L'erreur indique que deux classes ont le même nom de type XML.
Utilisez @XmlType.name et @XmlType.namespace pour leur affecter des noms différents.
Cette
erreur signale que des noms de classes ou des valeurs @XMLType.name sont identiques
mais se trouvent dans différents packages Java. Pour éviter cette erreur, ajoutez la classe espace de nom @XML.Type. à l'annotation @XMLType afin de faire la différence entre les types XML.gotchaDans le cas des applications JAX-WS, il est possible que l'outil de ligne de commande wsgen ne parvienne pas à localiser les fichiers des classes partagées dans le profil complet. Vous pouvez spécifier l'emplacement de ces fichiers de classe à l'aide de la propriété personnalisée com.ibm.websphere.webservices.WSDL_Generation_Extra_ClassPath. Pour plus d'informations, consultez la documentation relative aux propriétés personnalisées de la machine virtuelle Java.
Syntaxe
La syntaxe de ligne de commande est la suivante :
![[Windows]](../images/windows.gif)
racine_serveur_app\bin\wsgen.bat [options] classe_implémentation_service
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
racine_serveur_app/bin/wsgen.sh [options] classe_implémentation_service
![[IBM i]](../images/iseries.gif)
racine_serveur_app/bin/wsgen [options] classe_implémentation_service
Paramètres
Le nom classe_implémentation_service est le seul paramètre obligatoire. Les paramètres suivants sont facultatifs pour la commande wsgen :
- -classpath <chemin>
- Indique l'emplacement de la classe d'implémentation de service.
- -cp <chemin>
- Indique l'emplacement de la classe d'implémentation de service. Ce paramètre est identique à -classpath <chemin>.
- -d <répertoire>
- Indique l'emplacement dans lequel stocker les fichiers de sortie générés.
- -extension
- Indique si des extensions personnalisées doivent être autorisées pour les fonctionnalités non définies par la spécification JAX-WS. L'utilisation des extensions peut donner lieu à des applications non portables ou non interopérables avec d'autres implémentations.
- -help
- Affiche le menu d'aide.
- -keep
- Indique si les fichiers source générés doivent être conservés.
- -r <répertoire>
- Ce paramètre n'est utilisé qu'avec le paramètre -wsdl. Indique l'emplacement dans lequel stocker le fichier WSDL généré.
- -s <répertoire>
- Indique le répertoire dans lequel placer les fichiers source générés.
- -verbose
- Indique les messages de sortie identifiant l'opération en cours du compilateur.
- -version
- Imprime les informations de version. Si vous spécifiez cette option, seules les informations de version sont générées et le traitement normal des commandes n'a pas lieu.
- -wsdl [:protocole]
- Par défaut, wsgen ne génère pas de fichier WSDL. Ce paramètre facultatif permet à wsgen de générer un fichier WSDL et ne sert qu'à permettre à un développeur d'examiner un fichier WSDL avant le déploiement du noeud final. Le protocole est facultatif et indique le protocole utilisé dans wsdl:binding. Les valeurs admises pour protocole sont soap 1.1 et Xsoap 1.2. La valeur par défaut est soap 1.1. La valeur Xsoap 1.2 n'est pas standard et n'est utilisée qu'avec l'option -extension.
- -servicename <nom>
- Ce paramètre n'est utilisé qu'avec l'option -wsdl. Indique un nom wsdl:service à générer dans le fichier WSDL. Par exemple,
-service name "{http://mynamespace/}MyService"
- -portname
- Ce paramètre n'est utilisé qu'avec l'option -wsdl. Indique un nom wsdl:port à générer dans le fichier WSDL. Par exemple,
-portname "{http://monespacenom/}Monport"