Mandato Java2WSDL para aplicaciones JAX-RPC
La herramienta de línea de mandatos Java2WSDL correlaciona las clases Java™ con un archivo WSDL para aplicaciones JAX-RPC (Java API for XML-based RPC).
La herramienta de línea de mandatos Java2WSDL no está soportada en la plataforma
z/OS. Esta función la proporcionan las herramientas de ensamblaje suministradas con la versión z/OS del producto.
El mandato Java2WSDL establece la correlación de clases Java con un archivo WSDL (Web Services Description Language) siguiendo la especificación de la API de Java para llamadas de procedimiento remoto basadas en XML (JAX-RPC) 1.1.
El mandato Java2WSDL acepta una clase Java como entrada y produce un archivo WSDL que representa la clase de entrada. Si existe un archivo en la ubicación de salida, éste se sobrescribe. El archivo WSDL generado por el mandato Java2WSDL contiene constructores de esquemas WSDL y XML que se derivan automáticamente de la clase de entrada. Puede alterar temporalmente estos valores predeterminados con argumentos de línea de mandatos.
El mandato Java2WSDL es independiente del protocolo; al ejecutar el mandato Java2WSDL, puede especificar opciones de línea de mandatos que generen enlaces de protocolo SOAP y que no sean SOAP en el archivo WSDL. Para cada enlace que se puede generar, el mandato Java2WSDL tiene un generador de enlaces para generar el WSDL para dicho enlace.
Sintaxis y argumentos de línea de mandatos
Java2WSDL [argumento...] clase
Tienen soporte los siguientes argumentos de línea de mandatos:
Argumentos necesarios
- class Representa el nombre plenamente cualificado de una de las siguientes clases Java:
- Interfaz remota de EJB (Enterprise JavaBeans) de sesión sin estado que amplía la clase javax.ejb.EJBObject
- Interfaz de punto final de servicio que amplía la clase java.rmi.Remote
- Beans Java
Argumentos importantes
- -location ubicación
Proporciona la ubicación publicada o el URL (Uniform Resource Locator) del servicio. Si no se proporciona esta información, se emite un aviso que indica que todavía no se ha determinado la ubicación de publicación final. Normalmente la ubicación de servicio se altera temporalmente al desplegar el servicio web.
El nombre detrás de la última barra inclinada invertida es el nombre del puerto de servicio, a menos que el argumento -servicePortName altere temporalmente el nombre. Al atributo de ubicación de dirección de puerto de servicio se le asigna el valor especificado. Se pueden especificar varias direcciones de punto final. Sólo se recomienda utilizar la opción -location si es necesario un único tipo de enlace. Si se solicitan varios tipos de enlace, las propiedades de ubicación específicas del enlace de protocolo se pasarán a través de la línea de mandatos mediante el distintivo -x.
En el siguiente ejemplo se muestra cómo producir los enlaces SOAP a través de HTTP, y SOAP a través de JMS (Java Message Service):
Utilice la opción -location para determinar a qué puerto se aplica el valor de la opción -location; para ello se solicitan los URL de punto final que se van a especificar a través de los valores de propiedades específicos del enlace.java2wsdl -bindingTypes http, jms \ -x http.location=http://su.nombre.servidor:9080/StockQuoteService/services/StockQuote \ -x jms.location= \ jms:/queue?destination=jms/MyQueue&connectionFactory=jms/MyCF&targetService=StockQuote
- -output wsdl-uri
Indica la vía de acceso y el nombre de archivo del archivo WSDL de salida. Si no se especifica, el archivo class.wsdl predeterminado se escribe en el directorio actual.
- -input wsdl-uri
Especifica el archivo WSDL de entrada que se utiliza para crear un archivo WSDL de salida. La información de un archivo WSDL existente se especifica en esta opción y se utiliza con la clase Java de entrada para generar la salida.
- -bindingTypes Especifica la lista de tipos de enlaces escritos en el archivo WSDL de salida. Todos los generadores de enlaces del comando Java2WSDL dan soporte a tipos de enlace específicos. Los valores de tipo de enlace válidos son http (SOAP a través de HTTP), jms (SOAP a través de JMS) y ejb (invocación EJB local o remota). Por ejemplo, el siguiente mandato puede utilizarse para generar enlaces EJB y SOAP a través de HTTP para la interfaz de punto final de servicio my.pkg.MySEI y la clase de implementación de my.pkg.MyEJBClass:
El siguiente mandato es un ejemplo de la utilización de la opción -bindingTypes para generar enlaces SOAP a través de HTTP y enlaces SOAP a través de JMS:java2wsdl -bindingTypes http, ejb -implClass my.pkg.MyEJBClass my.pkg.MySEI
java2wsdl -bindingTypes http, jms -implClass my.pkg.MyEJBClass my.pkg.MySEI
- -style RPC | DOCUMENT
Especifica el estilo de WSDL que se utilizará en el archivo WSDL generado. Para obtener más información, consulte el apartado Correlación entre el lenguaje Java, WSDL y XML para aplicaciones JAX-RPC. Este argumento se utiliza con el argumento -use.
Si se especifica RPC con -use ENCODED, se genera un archivo WSDL style=rpc/use=encoded. Si se especifica RPC con la opción -use LITERAL, se genera un archivo WSDL style=rpc/use=literal . Si se especifica DOCUMENT con la opción -use LITERAL, se genera un archivo WSDL style=document/use=literal.
- -use LITERAL | ENCODED
Especifica qué combinaciones de estilo y uso se generan en el archivo WSDL cuando se utiliza con el argumento -style. Las combinaciones son rpc y encoded, rpc y literal, o doc y literal. Este valor se aplica a todos los enlaces SOAP. Para obtener más información, consulte el apartado Correlación entre el lenguaje Java, WSDL y XML para aplicaciones JAX-RPC.
- -transport http | jms
Genera enlaces SOAP para HTTP (valor predeterminado) y JMS. Si se especifica JMS, se añadirán los caracteres jms al nombre de archivo WSDL para impedir que se grabe encima de un archivo WSDL existente de otro transporte. Sólo se puede especificar una vez la opción de transporte.
Esta opción está en desuso. La opción -bindingTypes sustituye a la opción -transport, lo que le permite generar enlaces que no sean específicos de SOAP.
- -portTypeName nombre
Especifica el nombre que se debe utilizar para el elemento portType. Si no se especifica, el nombre de enlace es el nombre de tipo de puerto.
- -bindingName nombre
Especifica el nombre que se debe utilizar para el elemento de enlace. Si no se especifica, el nombre de enlace es el nombre de tipo de puerto.
- -serviceElementName nombre
Especifica el nombre del elemento de servicio.
- -servicePortName nombre
Especifica el nombre del servicio. Si no se especifica, el nombre de servicio se deriva del argumento -location.
- -namespace espacio_nombres_destino
Indica el espacio de nombres de destino del archivo WSDL que se está generando. Para obtener más información sobre el algoritmo que se utiliza para obtener el espacio de nombres predeterminado, consulte el apartado Correlación entre el lenguaje Java, WSDL y XML para aplicaciones JAX-RPC.
- -PkgtoNS espacio de nombres de paquete
Especifica la correlación de un paquete Java con un espacio de nombres. Si un paquete no tiene un espacio de nombres, el mandato Java2WSDL genera un nombre de espacio de nombres. Puede repetir el argumento -PkgtoNS para especificar correlaciones para varios paquetes.
- -extraClasses clases
Especifica otras clases que están representadas en el archivo WSDL.
- -implClass impl-class
El mandato Java2WSDL utiliza nombres de parámetros de métodos para construir los nombres de las partes del mensaje del archivo WSDL. El mandato obtiene automáticamente los nombres de mensajes de la información de depuración en la clase. Si la clase se compila sin información de depuración, o si la clase es una interfaz, los nombres de parámetros de métodos no están disponibles. En este caso, puede utilizar el argumento -implClass para proporcionar una clase alternativa desde la que obtener nombres de parámetros de métodos. No es necesario que impl-class implemente la clase si la clase es una interfaz, pero debe implementar los mismos métodos que la clase.
- -verbose
Muestra los mensajes verbosos.
- -help
Muestra el mensaje de ayuda.
- -helpX
Muestra el mensaje de ayuda para opciones ampliadas y para distintas opciones que reciben soporte en los generadores de enlaces.
Otros argumentos
- -wrapped booleano
Especifica si debe generarse el archivo WSDL de acuerdo a las reglas "wrapped" (de envoltura). Esta opción sólo es válida si use es literal. La opción toma de manera predeterminada el valor true.
- -stopClasses padre [, padre]
El mandato Java2WSDL busca las interfaces y las clases heredadas para construir la lista de métodos para las operaciones de archivo WSDL si se especifica el argumento -all.
El mandato Java2WSDL busca las interfaces y las clases heredadas cuando genera los complexTypes ampliados. La búsqueda se detiene cuando se encuentra una clase o una interfaz dentro de un paquete que empieza por java o javax. Puede utilizar el argumento -stopClasses para definir clases adicionales que hagan que se detenga la búsqueda.
- -methods argumento
Especifica una lista de nombres de métodos de la interfaz de punto final de servicio que debe exponerse en el archivo WSDL de salida. La lista se separa por espacios o comas.
- -soapAction Los argumentos válidos son:
- DEFAULT
Establece el campo soapAction según la información de despliegue.
- NINGUNO
Establece el campo soapAction como comillas ("").
- OPERATION
Establece el campo soapAction con el nombre de la operación.
- DEFAULT
- -outputImpl impl-wsdl
Especifica si desea que se emita una interfaz y un archivo WSDL de implementación.
- -locationImport uri-ubicación
Especifica la ubicación del archivo WSDL de interfaz si se utiliza el argumento-outputImpl.
- -namespaceImpl espacio_nombres
Especifica el espacio de nombres de destino para el archivo WSDL de implementación, si utiliza el argumento -outputImpl.
- -MIMEStyle <style>
Especifica el tipo MIME (Multipurpose Internet Mail Extensions) utilizado para la correlación con (wsi:swaRef) (Web Services-Interoperability SOAP with attachments reference) para el elemento de enlace.
El valor de <style> puede ser uno de los siguientes:- WSDL11 (valor predeterminado): correlaciona tipos MIME mediante los estándares de WSDL 1.1 exclusivamente. Si el tipo MIME no puede correlacionarse con los estándares de WSDL 1.1, se produce un error en el mandato.
- AXIS: correlaciona tipos MIME mediante los estándares de AXIS, por ejemplo la imagen se convierte en axis:image.
- swaRef: correlaciona tipos MIME mediante los estándares de WSDL 1.1
con dos referencias:
- DataHandler se correlaciona con el elemento wsi:swaRef en lugar de una aplicación y una corriente de octetos
- Si no se permite la correlación a través de WSDL 1.1, realice la correlación con el elemento wsi:swaRef
- -propertiesFile argumentoEstablece las opciones existentes, como -extraClasses, con un archivo de propiedades en lugar de con una línea de mandatos. En el siguiente ejemplo se muestra el uso de este argumento:
extraClasses=com.ibm.Class1, com.sun.Class2,org.apache.Class3
- -voidReturnLos argumentos válidos son:
- ONEWAY
Los métodos con devoluciones void son de dirección única. Este argumento es el valor predeterminado para un transporte JMS.
- TWOWAY
Los métodos con devoluciones void son de dos direcciones. Este argumento es el valor predeterminado para un transporte HTTP.
- ONEWAY
- -debug
Muestra mensajes de depuración.
- -property o -xPuede utiliza la opción -x para pasar las opciones de línea de mandatos a varios generadores de enlaces. Utilice la opción -x varias veces en la línea de mandatos para especificar un conjunto de valores de propiedades que se vaya a pasar a cada uno de los métodos de generador de enlaces que llame el mandato Java2WSDL . Asimismo, puede utilizar una única opción -x para especificar varias propiedades, separándolas mediante una coma, por ejemplo:
es equivalente a:java2wsdl -x prop1=valor1 -x prop2=valor2
La opción -x proporciona la flexibilidad necesaria para especificar todas las opciones de línea de mandatos para los distintos generadores de enlaces de forma independiente, si es necesario. El valor especificado en la opción -x sobrescribe el valor especificado en la opción de línea de mandatos equivalente, si ambos están especificados.java2wsdl -x prop1=valor1,prop2=valor2