Mandato wsimport para aplicaciones JAX-WS
La herramienta de línea de mandatos wsimport procesa un archivo WSDL (Web Services Description Language) y genera los artefactos necesarios para desarrollar aplicaciones de servicio web JAX-WS (Java™ API for XML-Based Web Services). Los artefactos generados son compatibles con Java 5, lo que los hace portables entre distintas plataformas y versiones de Java.
La herramienta de línea de mandatos wsimport da soporte al método en sentido descendente para desarrollar servicios web JAX-WS. Cuando comience con un archivo WSDL existente, utilice la herramienta de línea de mandatos wsimport para generar los artefactos JAX-WS necesarios.


- SEI (Service Endpoint Interface): SEI es la representación Java anotada del archivo WSDL para el servicio web. Esta interfaz se utiliza para implementar puntos finales JavaBeans o para crear instancias de cliente proxy dinámico.
- Clase de extensión javax.xml.ws.Service: esta es una clase generada que amplía la clase javax.xml.ws.Service. Esta clase se utiliza para configurar y crear tanto instancias de proxy dinámico como instancias de asignación.
- Beans de datos necesarios, incluidos los beans JAXB (Java Architecture for XML Binding) necesarios para diseñar los datos del servicio web.

- Debe definir todos los servicios dentro del archivo WSDL principal. La herramienta wsimport no procesa los servicios definidos dentro de un archivo WSDL importado.
- Si ejecuta la herramienta wsimport en un archivo WSDL que implementa un patrón de tipo Literal o Documento, los elementos complexTypes que definen los tipos de entrada y de salida deben constar de nombres exclusivos para impedir conflictos de nombres en la lista de parámetros de la operación.
- Si ejecuta la herramienta wsimport y pasa un URL (Uniform Resource Identifier) ?wsdl como un parámetro para un archivo WSDL, asegúrese de que está utilizando el URI de WSDL resuelto. En el perfil completo, la herramienta wsimport resuelve correctamente el URI ?wsdl, pero es posible que otros URI relativos especificados no se resuelvan correctamente. En el perfil Liberty, la herramienta wsimport resuelve correctamente el URI ?wsdl y otros URL relativos a los que se hace referencia.
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.WsImport desde dentro del entorno de compilación de Ant para invocar la herramienta WsImport. Para que funcione debidamente, esta tarea Ant requiere que se invoque Ant mediante el script ws_ant.
Sintaxis
La sintaxis de la línea de mandatos es:
![[Windows]](../images/windows.gif)
raíz_servidor_aplicaciones\bin\wsimport.bat [opciones] URI_WSDL
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
raíz_servidor_aplicaciones/bin/wsimport.sh
[opciones] URI_WSDL
![[IBM i]](../images/iseries.gif)
raíz_servidor_aplicaciones/bin/wsimport
[opciones] URI_WSDL
Parámetros
El URI_WSDL es el único parámetro necesario. Los siguientes parámetros son opcionales para el mandato wsimport:
- -b <vía_acceso>
- Especifica los archivos JAX-WS o JAXB de enlace externos. Puede especificar varios archivos de enlace JAX-WS y JAXB mediante la opción -b. No obstante, cada archivo se debe especificar con su propia opción -b.
- -B <opción_jaxb>
- Especifica si se pasa esta opción al compilador de esquemas JAXB.
- -catalog
- Especifica el archivo de catálogo para resolver las referencias de entidad externas. Da soporte a los formatos de catálogos XML TR9401, XCatalog y OASIS.
- -d <directorio>
- Especifica dónde se han de colocar los archivos de salida generados.
- -extension
- Especifica si se aceptan las extensiones personalizadas para las funciones que no se han especificado mediante la especificación JAX-WS. Si se utilizan extensiones personalizadas, es posible que las aplicaciones no se puedan portar o no puedan interactuar con otras implementaciones.
- -help
- Muestra el menú de ayuda.
- -httpproxy:<host>:<puerto>
- Especifica un proxy HTTP. El valor de puerto predeterminado es 8080.
- -keep
- Especifica si se conservan los archivos de origen generados.
- -p <nombre_paquete>
- Especifica un paquete de destino con esta opción de línea de mandatos y altera temporalmente cualquier personalización de archivo WSDL y enlace de esquema para el nombre del paquete y el algoritmo de nombre de paquete predeterminado definidos en la especificación JAX-WS.
- -quiet
- Especifica si se suprime la salida de wsimport.
- -s <directorio>
- Especifica el directorio dónde se han de colocar los archivos fuente generados.
- -target <versión>
- Especifica si se genera código que cumpla con un nivel de especificación JAX-WS determinado. Especifica la versión 2.0 o 2.1 para generar código que cumpla con la especificación JAX-WS 2.0 o JAX-WS 2.1, respectivamente. Si se especifica la versión 2.1 se indica que se debe generar código que cumpla con la especificación JAX-WS 2.1. El valor predeterminado es la versión 2.2 y genera código compatible para la especificación JAXB 2.2.
- La opción target es necesaria para el perfil de Liberty.
- -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, en la salida sólo se incluirá la información de versión y no se llevará a cabo el proceso normal de mandatos.
- -wsdlLocation
- Especifica el valor @WebServiceClient.wsdlLocation.
Supported configurations: La herramienta wsimport no establece el valor @WebService.wsdlLocation de forma predeterminada ni cuando se especifica el atributo -wsdlLocation. La herramienta de línea de mandatos wsimport sólo actualiza la anotación @WebServiceClient.wsdlLocation. Puede actualizar manualmente la anotación @WebService.wsdlLocation con un URL relativo que especifica la ubicación del archivo WSDL (Web Services Description Language). Si la anotación @WebService.wsdlLocation está presente en una clase de implementación de punto final, entonces el valor debe ser un URL relativo y el documento WSDL al que hace referencia debe estar empaquetado con la aplicación.sptcfg
Avoid trouble: Si especifica un URL HTTPS para el parámetro -wsdlLocation, la herramienta wsimport genera una clase de servicio con un constructor sin argumentos que no es válido. Evite utilizar el constructor de servicio sin argumentos para crear una instancia de servicio. En su lugar, pase el URL HTTPS para uno de los constructores de clases de servicio que toma un URL WSDL como argumento; por ejemplo:
gotchaMyService("https://example.ibm.com/My?wsdl");
- -clientJar
- wsimport en el servicio WSDL genera las clases que son necesarias para la invocación de servicios web. Pero no toda la información que necesita el entorno de ejecución JAX-WS se captura en la SEI o WebServiceClient a través de las anotaciones de servicio web estándar. La clase generada tiene la ubicación del WSDL, por lo que puede recuperar los metadatos adicionales del servicio durante la ejecución. Pero es necesaria una conexión adicional simplemente para acceder a los metadatos cada vez que se crea una instancia de servicio, lo cual aumenta el uso de la red. Mediante la opción -clientJar de wsimport, el WSDL y el esquema se descargan automáticamente y todos los artefactos generados del extremo cliente se empaquetan en un archivo JAR. Por lo tanto, puede incluir el archivo JAR generado utilizando esta nueva opción en la vía de acceso de clases y no necesita recuperar los WSDL a partir del punto final cada vez que se crea una instancia de servicio, con lo cual se reduce el uso de la red.