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.

Supported configurations Supported configurations: Las herramientas de línea de mandatos wsimport, wsgen, schemagen y xjc no tienen soporte en la plataforma z/OS. Esta funcionalidad la proporcionan las herramientas de ensamblaje proporcionadas con WebSphere Application Server que se ejecutan 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. sptcfg
Best practice Best practice: WebSphere Application Server proporciona la API Java para servicios web basados en XML (JAX-WS) y las herramientas de arquitectura Java para enlaces XML (JAXB). Las herramientas de línea de mandatos wsimport, wsgen, schemagen y xjc se encuentran en el directorio raíz_servidor_aplicaciones\bin\ de WebSphere Application Server tradicional. Los mandatos xjc y schemagen se encuentran en el directorio raíz_servidor_aplicaciones\jaxb\bin\ del perfil Liberty. En algunas ocasiones, los artefactos generados por las herramientas que proporcionan WebSphere Application Server y 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, es más recomendable utilizar las herramientas que se proporcionan con este producto para alcanzar una integración sin interrupciones dentro del entorno de WebSphere Application Server y aprovechar las características que puedan estar soportadas únicamente 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\.bprac
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:
  • 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.
Puede empaquetar los artefactos generados en un archivo WAR (web Archive) con el archivo WSDL y los documentos de esquema junto con la implementación de punto final que se ha de desplegar.
Supported configurations Supported configurations: Para utilizar correctamente la herramienta wsimport, debe cumplir con 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 Liberty, la herramienta wsimport resuelve correctamente el URI ?wsdl y otros URL relativos a los que se hace referencia.
sptcfg

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]
raíz_servidor_aplicaciones\bin\wsimport.bat [opciones] URI_WSDL
[AIX][HP-UX][Linux][Solaris]
raíz_servidor_aplicaciones/bin/wsimport.sh
[opciones] URI_WSDL
[IBM i]
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 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 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:
MyService("https://example.ibm.com/My?wsdl");
gotcha
-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.

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_wsimport
File name: rwbs_wsimport.html