Mandato WSDL2Java para aplicaciones JAX-RPC
Ejecute la herramienta de línea de mandatos WSDL2Java en el archivo WSDL para crear API de Java™ y plantillas de descriptor de despliegue.
Un archivo WSDL (Web Services Description Language) describe un servicio web. La especificación JAX-RPC (Java API for XML-based Remote Procedure Call) 1.1 define una correlación de API Java que interactúa con el servicio web. La especificación Servicios web para Java Platform, Enterprise Edition (Java EE) define descriptores de despliegue que despliegan un servicio web en un entorno Java EE . El mandato WSDL2Java se ejecuta en el archivo WSDL para crear API Java y plantillas de descriptor de despliegue de acuerdo con estas especificaciones.
targetNamespace="MyRelNamespace". Puede cambiar el espacio de nombres relativo de este ejemplo a un espacio de nombres absoluto añadiendo el protocolo y la información de URI base:targetNamespace="http://www.sample.com/MyRelNamespace"Sintaxis de la línea de mandatos
WSDL2Java [arguments] WSDL-URIArgumentos necesarios
- WSDL-URI
- Especifica la ubicación del archivo WSDL de entrada utilizando un URI (Universal Resource Identifier). También se puede utilizar una vía de acceso de archivos normal si el archivo WSDL está en el sistema de archivos local.
Argumentos importantes
- -role rolJava EE
- Especifica el rol de desarrollo Java EE que identifica qué archivos generar. Los argumentos válidos incluyen:
- cliente
- Una combinación de los argumentos develop-client y deploy-client.
- deploy-client
- Genera archivos de enlaces para despliegue de clientes.
- deploy-server
- Genera archivos de enlaces para despliegue de servidores.
- develop-client (valor predeterminado)
- Genera archivos para desarrollo de clientes.
- develop-server
- Genera archivos para desarrollo de servidores.
- servidor
- Una combinación de los argumentos develop-server y deploy-server.
- -container Java EE-container
- Indica el contenedor Java EE que se debe utilizar. Los argumentos válidos incluyen:
- cliente
- Indica contenedor de cliente.
- EJB
- Indica un contenedor EJB (Enterprise JavaBeans ).
- ninguno
- Indica ningún contenedor.
- Web
- Indica un contenedor web.
- - directorio de salida
- Establece el directorio raíz de los archivos emitidos.
- -inputMappingFile archivo de correlación
- Especifica el nombre de archivo del archivo de correlación de servicios web para Java EE .
- -introspect
- Utiliza beans de Java existentes con una nueva API de servicio web.
En algunos escenarios, es bueno utilizar clases Java existentes en lugar de generar nuevas clases. La opción -introspect indica al mandato WSDL2Java que examine las clases Java existentes al generar clases. Las clases existentes se validan contra la especificación JAX-RPC. Por ejemplo:
Supongamos que tiene un bean Java existente
El archivo WSDL define x comopublic class Bean { public Date x; }xsd:dateTime. Sin la opción -introspect, el mandato WSDL2Java genera un bean Java similar al ejemplo siguiente:
El mandato WSDL2Java utiliza la opción -introspect para examinar el bean Java original y para generar clases que sean compatibles con los beans Java existentes.public class Bean { private Calendar x; public void setx(Calendar value) (x=value;) public Calendar getX() { return x;) } - - rutas de clase
- Define una vía de acceso de clases alternativa para buscar clases Java.
- -noDataBinding
- Inhabilita el enlace de tipos XML a tipos Java. En su lugar, cada tipo XML se correlaciona con una interfaz
javax.xml.soap.SOAPElementdefinida por la especificación SAAJ (SOAP with Attachments API for Java).El modelo de programación JAX-WS (API de Java para servicios web XML) da soporte a SAAJ 1.2 y 1.3.
El modelo de programación JAX-RPC da soporte a SAAJ 1.2.
Los modelos de programación Java definen correlaciones Java para un subconjunto de tipos XML. Varios tipos XML no se pueden correlacionar con beans Java o primitivos. En esta situación, el mandato WSDL2Java correlaciona el tipo con un
SOAPElementde SAAJ. Un SOAPElement de SAAJ es una representación genérica del elemento en el mensaje. Los métodos delSOAPElementpueden utilizarse para examinar el elemento y sus hijos.En algunos casos, es posible que sea más adecuado utilizar de forma exclusiva la correlación de
SOAPElementgenérica. Para obtener más información sobre el uso deSOAPElement, consulte la información sobre la interfaz SOAP with Attachments API for Java y los enlazadores de datos personalizados para aplicaciones JAX-RPC. - -help
- Muestra un mensaje de ayuda y sale.
- -helpX
- Muestra un mensaje de ayuda para las opciones ampliadas. Las opciones incluyen:
- -verbose
- Muestra información de proceso, incluidos los nombres de los archivos generados.
- -NStoPkg namespace=paquete
- De forma predeterminada, los nombres de paquetes se derivan
automáticamente de las series de espacios de nombres en el archivo WSDL. Por ejemplo, si el
espacio de nombres tiene la forma http://x.y.com o urn:x.y.com, el paquete
correspondiente es com.y.x.
Puede proporcionar su propia correlación utilizando el argumento -NStoPkg, que se puede repetir cuanto sea necesario, una vez para cada correlación exclusiva de espacios de nombres. Por ejemplo, si un espacio de nombres en el archivo WSDL se llama
urn:AddressFetcher2y desea que los archivos generados a partir de los objetos de este espacio de nombres residan en el paquete samples.addr, proporcione el argumento -NStoPkg "http://urn:AddressFetcher2/"=samples.addr en el mandato WSDL2Java.
- -tiempo de espera segundos
- Especifica cuánto tiempo espera el mandato WSDL2Java , en segundos, a que el WSDL-URI responda antes de abandonar. El valor predeterminado es 45 segundos; -1 inhabilita el tiempo de espera.
- -genResolver
- Genera una clase absolute-import resolver (solucionador de importación absoluta). El objetivo de esta clase es anotar el contenido de los archivos WSDL importados que utiliza el URI de WSDL. Esta clase la utiliza el tiempo de ejecución y también puede utilizarse para futuras ejecuciones del mandato WSDL2Java. Esta flexibilidad es deseable cuando los archivos WSDL importados son remotos y pueden ser inaccesibles. Cuando se utiliza un solucionador de importación, se elimina la posibilidad de que un archivo WSDL remoto tenga distintos contenidos durante la ejecución de los que tenía durante el desarrollo. La clase generada se denomina
_AbsoluteImportResolver.java. Compile y empaquete esta clase con las otras clases Java generadas por el mandato WSDL2Java . - -useResolver clase-resolución
- Especifica la clase absolute-import resolver (solucionador de importación absoluta) que se debe utilizar durante el análisis. Esta clase debe crearse durante una ejecución anterior del mandato WSDL2Java con la opción -genResolver. La clase debe estar disponible en la variable CLASSPATH.
- -deployScope argumento
- Indica cómo desplegar la implementación del
servidor. Los argumentos válidos incluyen:
- Aplicación
- Utiliza una instancia de la clase de implementación para todas las solicitudes.
- Solicitud
- Crea una instancia nueva de la clase de implementación para cada solicitud.
- Sesión
- Crea una instancia nueva de la clase de implementación para cada sesión.
Otros argumentos
- - id de usuario
- Especifica el nombre de usuario de inicio de sesión para acceder al URI de WSDL.
- -password contraseña
- Especifica la contraseña de usuario de inicio de sesión para acceder al URI de WSDL.
- -all
- Genera archivos Java para todos los tipos, incluso para aquellos a los que no se hace referencia.
- -allowRelativeNamespace true o false
- Especifica si se deben inhabilitar las restricciones del espacio de nombres relativo. Si especifica -allowRelativeNamespace=true, se inhabilitan las restricciones del espacio de nombres relativo.Evitar problemas: Utilice sólo esta propiedad si tiene un archivo o esquema WSDL establecido que se basa en un espacio de nombres relativo y está buscando interoperar con un conjunto definido de proveedores que permitan el uso de espacios de nombres relativos.
- -debug
- Imprime información de depuración.
- Imprime el argumento de información de depuración
- Genera archivos Java. Los argumentos válidos incluyen:
- IfNotExists, valor predeterminado
- Sobrescribir
- Nee
- -javaSearch
- La opción -javaSearch se utiliza con la opción
-genJava. En caso de -genJava IfNotExists, utilice la opción -javaSearch para determinar cómo se detecta la existencia de un archivo.
- File (valor predeterminado): busca un archivo en el directorio de salida
- Classpath: busca una clase en la variable CLASSPATH
- Both: busca un archivo en el directorio de salida o en una clase en la variable CLASSPATH
- -genXML argumento
- Genera los archivos .xml y .xmi. Los argumentos válidos son:
- IfNotExists, valor predeterminado
- Sobrescribir
- Nee
- -genImplSer true o false
- Indica que cada bean Java generado implementa java.io.Serializable. El valor predeterminado es false.
- -genEquals true o false
- Indica que cada bean Java generado tiene métodos equals y hashCode . El valor predeterminado es false.
- -noWrappedOperations
- Inhabilita la detección de operaciones con envoltura. Se generan los beans Java para los mensajes de solicitud y respuesta.
- -noWrappedArrays
- Inhabilita la detección de matriz con envoltura.
- -fileNStoPkg nombre de archivo
- Especifica el archivo del espacio de nombres para empaquetar correlaciones. El valor predeterminado es NStoPKG.properties.
- - servicio wsdl nombre del servicio
- Sólo genera archivos para el servicio WSDL instalado.
- -testCase
- Genera la plantilla para un caso de prueba JUnit para probar servicios web. JUnit es una infraestructura sencilla para escribir pruebas repetibles.