Mandato wsgen para aplicaciones JAX-WS
La herramienta de línea de mandatos wsgen genera los artefactos necesarios para las aplicaciones JAX-WS (Java™ API for XML Web Services) cuando se inicia el código Java. Los artefactos generados son compatibles con Java 5, lo que los hace portables entre distintas plataformas y versiones de Java.
Cuando utiliza un método en sentido ascendente para desarrollar los servicios web de JAX-WS y comienza desde una implementación de punto final de servicio, puede utilizar la herramienta wsgen para generar los artefactos JAX-WS necesarios.


- cualquier clase JAXB (arquitectura Java para enlaces XML) adicional que sea necesaria para clasificar y desclasificar los contenidos del mensaje.
- un archivo WSDL, si se especifica el argumento opcional -wsdl . La herramienta wsgen no genera automáticamente el archivo WSDL.
Cuando se utilizan las herramientas de JAX-WS V2.2, las referencias a java.lang.RuntimeException y java.rmi.RemoteException y sus subclases ya no están correlacionadas en el archivo WSDL. Este cambio de comportamiento cumple con la regla de conformidad con la especificación JAX-WS V2.1 que se describe en la sección 3.7 de la especificación. Esta regla de conformidad especifica que las clases java.lang.RuntimeException y java.rmi.RemoteException y sus subclases no se pueden tratar como excepciones específicas del servicio ni correlacionar en el archivo WSDL.
Además de utilizar las herramientas de la línea de mandatos, puede invocar estas herramientas JAX-WS desde los entornos de compilación Ant para WebSphere Application Server tradicional. Utilice la tarea Ant com.sun.tools.ws.ant.WsGen desde el entorno de compilación Ant para invocar la herramienta wsgen. Para que funcione debidamente, esta tarea Ant requiere que se invoque Ant mediante el script ws_ant.

Error: dos clases tiene el mismo nombre de tipo XML ....
Utilice @XmlType.name y @XmlType.namespace para asignarles nombres diferentes...
Este error indica que tiene nombres de clases o valores @XMLType.name con el mismo nombre, pero que existen dentro de paquetes Java diferentes. Para impedir este error, añada la clase
@XML.Type.namespace a la anotación @XMLType existente para distinguir entre los tipos de XML.gotchaCon las aplicaciones JAX-WS, la herramienta de línea de mandatos wsgen no puede ubicar los archivos de clase compartidos en el perfil completo. Puede especificar la ubicación de estos archivos de clase utilizando la propiedad personalizada com.ibm.websphere.webservices.WSDL_Generation_Extra_ClassPath . Para obtener más información, consulte la documentación acerca de propiedades personalizadas de la máquina virtual Java .
Sintaxis
La sintaxis de la línea de mandatos es:
![[Windows]](../images/windows.gif)
raíz_servidor_aplicaciones\bin\wsgen.bat
[options] clase_implementación_servicio
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
raíz_servidor_aplicaciones/bin/wsgen.sh
[options] clase_implementación_servicio
![[IBM i]](../images/iseries.gif)
raíz_servidor_aplicaciones/bin/wsgen
[options] clase_implementación_servicio
Parámetros
El nombre de la clase_implementación_servicio es el único parámetro necesario. Los siguientes parámetros son opcionales para el mandato wsgen:
- -classpath <vía_acceso>
- Especifica la ubicación de la clase de implementación de servicio.
- -cp <vía_acceso>
- Especifica la ubicación de la clase de implementación de servicio. Este parámetro es el mismo que -classpath <vía_acceso>.
- -d <directorio>
- Especifica dónde se han de colocar los archivos de salida generados.
- -extension
- Especifica si se habilitan extensiones personalizadas para las funciones que no están especificadas en la especificación JAX-WS. Si se utilizan extensiones, es posible que las aplicaciones no se puedan portar o no puedan interactuar con otras implementaciones.
- -help
- Muestra el menú de ayuda.
- -keep
- Especifica si se conservan los archivos de origen generados.
- -r <directorio>
- Este parámetro sólo se utiliza con el parámetro -wsdl. Especifica dónde se ha de colocar el archivo WSDL generado.
- -s <directorio>
- Especifica el directorio dónde se han de colocar los archivos fuente generados.
- -verbose
- Especifica que se han de generar mensajes de salida relacionados con las acciones del compilador.
- -version
- Imprime la información de versión. Si especifica esta opción, sólo se incluye en la salida la información de la versión y no se produce el proceso de mandatos normal.
- -wsdl [:protocolo]
- De forma predeterminada, la herramienta wsgen no genera un archivo WSDL. Este parámetro opcional hace que wsgen genere un archivo WSDL y generalmente sólo se utiliza para permitir que un desarrollador revise un archivo WSDL antes de que se despliegue el punto final. La opción protocolo es opcional y especifica el protocolo que se utiliza en wsdl:binding. Los valores válidos para protocol son soap 1.1 y Xsoap 1.2. El valor predeterminado es soap 1.1. El valor Xsoap 1.2 no es estándar y sólo se utiliza con la opción -extension .
- -servicename <nombre>
- Este parámetro sólo se utiliza con la opción -wsdl.
Especifica un nombre wsdl:service que se ha de generar en el archivo WSDL. Por ejemplo,
-service name "{http://mynamespace/}MyService"
- -portname
- Este parámetro sólo se utiliza con la opción -wsdl.
Especifica un nombre wsdl:port que se ha de generar en el archivo WSDL. Por ejemplo,
-portname "{http://mynamespace/}MyPort"