WS-Metadata 2.0 : Vista Rápida

WS-Metadata 2.0 define las anotaciones estándar utilizadas para desarrollar y desplegar Web Services mediante Java SE 6 o dentro de un contenedor Java EE 5. Para mayor detalle, veamos un ejemplito:



  1. @WebService marca esta clase Java como un Web Service, de modo que la implementación de JWS sepa que debe ser desplegada
  2. @SOAPBinding indica que este Web Service (WS) utiliza el protocolo SOAP
  3. El elemento @SOAPBinding.style indica que el WS debe ser desplegado usando el estilo document. Esta anotación configura el atributo style del elemento soap:binding del WSDL como se observa en el gráfico
  4. El elemento @SOAPBinding.use indica que los mensajes para este WS deben ser enviados usando el formato literal (o sea , no encoded). Esta anotación afecta el atributo use de los elementos soap:body
  5. El elemento @SOAPBinding.parameterStyle indica que los mensajes para este WS deben ser parámetros wrapped. Así, el atributo name del parámetro wrapper se denomina "SubmitPO"
  6. El elemento @WebMethod.operationName especifica que el atributo name de la operación del WSDL debe ser "SubmitPO"
  7. El elemento @WebResult.name especifica que el mensaje de respuesta debe ser un elemento llamado "PurchaseOrderAck"
  8. El elemento @WebParam.name especifica que el nombre del parámetro de request correspondiente al parámetro Java purchaseOrder debe llamarse "PurchaseOrder"

Anotaciones para mapping WSDL
Permiten darle forma al mapping WSDL/Java especificando información como el nombre de operación para un método Java en particular. En el gráfico anterior tenemos : @WebService, @WebResult y @webParam.

Anotaciones para binding SOAP
Nos permiten personalizar el estilo de binding SOAP, así como el uso y el estilo de parámetros. Los valores por defecto de JAX-WS para estilo de binding, uso y estilo de parámetros son document, literal y wrapped, respectivamente. Sin embargo, mediante la anotación @SOAPBinding se pueden especificar otras posibilidades, como rpc/literal o document/literal.

Anotaciones para Handlers
El despliegue de handlers se especifica mediante anotaciones de WS-Metadata. La anotación javax.jws.HandlerChain se utiliza para asociar un Web Service con una handler chain definido en un archivo externo referenciado mediante @HandlerChain.file.

Service Implementation Bean
WS-Metadata define los requisitos para desplegar una clase Java como web Service. Las clases que cumplen estos requerimientos se denomina Service Implementation Beans (SIB's). Tanto los POJOs como los EJB's que cumplan estos requisitos pueden desplegarse como Web Services

Comenzar desde WSDL y Java
El modelo de desarrollo "Comenzar desde WSDL y Java" es soportado mediante anotaciones que mapean componentes de clase Java existente con componentes de un documento WSDL. Por ejemplo la anotación @WebMethod.operation-name se utiliza para asociar un método a una wsdl:operation pre-existente.

Despliegue automático
El despliegue automático es un modelo de despliegue "copiar y pegar", similar al utilizado para páginas JSP. Es parte de la especificación de WS-metadata, pero no es obligatorio. En este modelo, el despliegue en tiempo de ejecución del WS depende totalmente de anotaciones, y no se requieren herramientas del vendedor. Glassfish posee esta funcionalidad.

Basado en el capítulo 2 de SOA Using Java Web Services de Mark D. Hansen

Publicar un comentario