Mandato wsimport para aplicaciones JAX-WS

La herramienta de línea de mandatos wsimport procesa un archivo WSDL (Web Services Description Language) existente y genera los artefactos necesarios para desarrollar aplicaciones de servicios web JAX-WS (Java™ API for XML-Based Web Services). Los artefactos generados son compatibles con Java 5, por lo que son portables entre distintas versiones y plataformas de Java.

La herramienta de línea de mandatos wsimport da soporte al método 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.

Configuraciones soportadas: Las herramientas de línea de mandatos wsimport, wsgen, schemagen y xjc no están soportadas en la plataforma z/OS® . Esta funcionalidad la proporcionan las herramientas de ensamblaje que se proporcionan con WebSphere® Application Server que se ejecuta en la plataforma z/OS . Obtenga información sobre estas herramientas de línea de mandatos para las aplicaciones JAX-WS para obtener más información sobre estas herramientas.
Práctica recomendada: WebSphere Application Server proporciona las herramientas JAX-WS (Java API for XML-Based Web Services) y JAXB (Java Architecture for XML Binding). Las herramientas de línea de mandatos wsimport, wsgen, schemagen y xjc se encuentran en el directorio raíz_servidor_aplicaciones\bin\ en WebSphere Application Server tradicional.Los mandatos xjc y schemagen se encuentran en el directorio raíz_servidor_aplicaciones\jaxb\bin\ en el perfil de Liberty. En algunas ocasiones, los artefactos generados por las herramientas proporcionadas por WebSphere Application Server y el JDK dan soporte a los mismos niveles de las especificaciones. En general, los artefactos generados por las herramientas JDK tienen portabilidad en otros entornos de ejecución compatibles. Sin embargo, se recomienda utilizar las herramientas que se proporcionan con este producto para lograr una integración sin fisuras en el entorno de WebSphere Application Server y aprovechar las características que sólo se pueden soportar en WebSphere Application Server. Para aprovechar las herramientas de JAX-WS y JAXB V2.2, utilice las herramientas que se proporcionan con el servidor de aplicaciones y que se encuentran en el directorio raíz_servidor_aplicaciones\bin\.
Nota: Puede utilizar las herramientas de línea de mandatos wsimport , wsgen, schemagen y xjc con Liberty y WebSphere Application Server tradicional del servidor de aplicaciones.
La herramienta wsimport lee un archivo WSDL existente y genera los artefactos siguientes:
  • Interfaz de punto final de servicio (SEI)-La 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 modelar los datos de servicio web.
Puede empaquetar los artefactos generados en un archivo WAR (Web Application Archive) con el archivo WSDL y los documentos de esquema junto con la implementación de punto final que se ha de desplegar.
Configuraciones soportadas: Para utilizar correctamente la herramienta wsimport , debe cumplir los requisitos siguientes:
  • 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 de Liberty, la herramienta wsimport resuelve correctamente el URI ?wsdl y otros URL relativos especificados.

Además de utilizar las herramientas desde 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 funcionar correctamente, esta tarea Ant necesita que se invoque Ant utilizando el script ws_ant.

Sintaxis

La sintaxis de la línea de mandatos es:

[Windows]
app_server_root\bin\wsimport.bat [options] WSDL_URI
[Linux][AIX][HP-UX][Solaris]
app_server_root/bin/wsimport.sh [options] WSDL_URI
[IBM i]
app_server_root/bin/wsimport [options] WSDL_URI

Parámetros

URI_WSDL es el único parámetro necesario. Los parámetros siguientes son opcionales para el mandato wsimport:

-b <path>
Especifica los archivos de enlace JAX-WS o JAXB externos. Puede especificar varios archivos de enlace JAX-WS y JAXB mediante la opción -b. Pero cada archivo se debe especificar con su propia opción -b.
-B <jaxbOption>
Especifica pasar esta opción al compilador de esquemas JAXB.
-catalog
Especifica el archivo de catálogo para resolver las referencias de entidad externas. Es compatible con los formatos de catálogo XML TR9401, XCatalog y OASIS.
-d <directory>
Especifica dónde se han de colocar los archivos de salida generados.
-extension
Especifica si se aceptan extensiones personalizadas para 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>:<port>
Especifica un proxy HTTP. El valor de puerto predeterminado es 8080.
-keep
Especifica si se conservan los archivos de origen generados.
-p <package_name>
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 que se debe suprimir la salida wsimport .
-s <directory>
Especifica el directorio dónde se han de colocar los archivos fuente generados.
-target <version>
Especifica generar código que sea compatible 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 que es compatible con la especificación JAXB 2.2.
La opción target es necesaria para el perfil 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, sólo se incluye la información de versión en la salida del mandato y el mandato no se procesa normalmente.
-wsdlLocation
Especifica el valor @WebServiceClient.wsdlLocation.
Configuraciones soportadas: La herramienta wsimport no establece el valor @WebService.wsdlLocation de forma predeterminada o 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.
Evitar problemas: 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:
MyService("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.