Anotaciones JAX-WS
JAX-WS (API de Java™ para servicios web basados en XML) se basa en el uso de anotaciones para especificar metadatos asociados a implementaciones de servicios web y para simplificar el desarrollo de servicios web. Las anotaciones describen cómo se accede a una implementación de servicio del lado del servidor como un servicio web o cómo una clase Java del lado del cliente accede a los servicios web.
El estándar de programación JAX-WS introduce soporte para anotar clases Java con metadatos que se utilizan para definir una aplicación de punto final de servicio como un servicio web y cómo un cliente puede acceder al servicio web. JAX-WS da soporte al uso de anotaciones basadas en el recurso de metadatos para la especificación Java Programming Language (Java Specification Request (JSR) 175), los metadatos de servicios web para la especificación Java Platform (JSR 181) y las anotaciones definidas por la especificación JAX-WS 2.0 y posterior (JSR 224) que incluye las anotaciones JAXB. Mediante las anotaciones del estándar JSR 181, basta con anotar la clase de implementación de servicio o la interfaz de servicio para habilitar la aplicación como un servicio web. El uso de anotaciones en el origen Java simplifica el desarrollo y el despliegue de servicios web definiendo parte de la información adicional que normalmente se obtiene de los archivos de descriptor de despliegue, los archivos WSDL o la correlación de metadatos de XML y WSDL en los artefactos de origen.
Utilice las anotaciones para configurar enlaces, cadenas de manejadores, establecer nombres de parámetros portType, de servicio y otros parámetros WSDL. Las anotaciones se utilizan en la correlación de Java con WSDL y esquema, y en el tiempo de ejecución para controlar cómo el tiempo de ejecución JAX-WS procesa y responde a las invocaciones de servicios web.
Para los servicios Web JAX-WS, el uso del descriptor de despliegue webservices.xml es opcional porque puede utilizar anotaciones para especificar toda la información incluida dentro del archivo del descriptor de despliegue. Puede utilizar el archivo del descriptor de despliegue para aumentar o alterar temporalmente las anotaciones de JAX-WS existentes. Cualquier información que defina en el descriptor de despliegue webservices.xml altera temporalmente la información correspondiente especificada por las anotaciones.
A partir de WebSphere® Application Server Versión 7.0 y posterior, los módulos de aplicación Java EE 5 (módulos de aplicación web versión 2.5 o posterior, o módulos EJB versión 3.0 o posterior) se exploran en busca de anotaciones para identificar servicios y clientes JAX-WS. Sin embargo, los módulos de aplicaciones anteriores a Java EE 5 (módulos de aplicaciones web versión 2.4 o anteriores o módulos EJB versión 2.1 o anteriores) no se exploran para ver si contienen anotaciones JAX-WS, de manera predeterminada, por razones de rendimiento.
- Puede establecer la propiedad UseWSFEP61ScanPolicy de META-INF/MANIFEST.MF de un archivo WAR o módulo EJB en
true
. Por ejemplo:
Cuando esta propiedad se establece enManifest-Version: 1.0 UseWSFEP61ScanPolicy: true
true
en META-INF/MANIFEST.MF del módulo, el módulo se explora en busca de anotaciones JAX-WS independientemente de la versión Java EE del módulo. El valor predeterminado esfalse
y cuando el valor predeterminado está en vigor, las anotaciones JAX-WS sólo están soportadas en módulos cuya versión sea Java EE 5 o posterior. - Puede establecer la propiedad JVM (máquina virtual Java) personalizada
com.ibm.websphere.webservices.UseWSFEP61ScanPolicy
utilizando la consola administrativa. Consulte las propiedades personalizadas de JVM para obtener la vía de acceso de navegación correcta que debe utilizar. Para solicitar la exploración de anotaciones en todos los módulos independientemente de su versión de Java EE , establezca la propiedad personalizadacom.ibm.websphere.webservices.UseWSFEP61ScanPolicy
entrue
. Debe cambiar el valor en cada uno de los servidores que requiera un cambio en el comportamiento predeterminado.
com.ibm.websphere.webservices.UseWSFEP61ScanPolicy
establecida en true
en la configuración de los servidores contenidos en el nodo, esta propiedad no afectará al gestor de despliegue. Debe establecer la propiedad en true
en el gestor de despliegue antes de que el nodo se federe, para conservar el comportamiento del nodo anterior a la federación.- Tipos como, por ejemplo, una clase Java, enum o interface
- Métodos
- Campos que representan variables de instancias locales dentro de una clase Java
- Parámetros de un método Java
Clase de anotación | Anotación | Propiedades |
---|---|---|
javax.jws. WebService |
La anotación @WebService marca una clase Java como implementando un servicio web o marca una interfaz de punto final de servicio (SEI) como implementando una interfaz de servicio web. Importante:
|
|
javax.jws. WebMethod |
La anotación @WebMethod indica un método que es una operación de servicio web. Aplique esta anotación a los métodos de una SEI (Service Endpoint Interface) de cliente o servidor o a una clase de implementación de punto final de servidor. |
|
javax.jws. Oneway |
La anotación @Oneway indica un método como una operación unidireccional de servicio web que sólo tiene un mensaje de entrada y ningún mensaje de salida. Aplique esta anotación a los métodos de una SEI (Service Endpoint Interface) de cliente o servidor o a una clase de implementación de punto final de servidor. |
|
javax.jws. WebParam |
La anotación @WebParam personaliza la correlación de un parámetro individual con una parte de mensaje de servicio web y un elemento XML. Aplique esta anotación a los métodos de una SEI (Service Endpoint Interface) de cliente o servidor o a una clase de implementación de punto final de servidor. |
|
javax.jws. WebResult |
La anotación @WebResult personaliza la correlación de un valor de retorno con una parte WSDL o elemento XML. Aplique esta anotación a los métodos de una SEI (Service Endpoint Interface) de cliente o servidor o a una clase de implementación de punto final de servidor. |
|
javax.jws. HandlerChain |
La anotación @HandlerChain asocia el servicio web con una cadena de manejadores definida externamente. Sólo puede configurar el manejador del servidor utilizando la anotación @HandlerChain de la SEI (Service Endpoint Interface) o la clase de implementación del punto final del servidor. Utilice uno de los diferentes modos de configurar un manejador del extremo del cliente. Puede configurar un manejador del extremo del cliente utilizando la anotación@HandlerChain en la clase de servicio generado o en SEI. Adicionalmente, puede registrar mediante programación su propia implementación de la interfaz HandlerResolver o establecer mediante programación la cadena de manejadores en el objeto Binding. |
|
javax.jws. SOAPBinding |
La anotación @SOAPBinding especifica la correlación del servicio web en el protocolo de mensajes SOAP. Aplique esta anotación a un tipo o a los métodos de una SEI (Service Endpoint Interface) de cliente o de servidor o a una clase de implementación de punto final de servidor. La anotación de nivel de método está limitada en cuanto a lo que puede especificar y sólo se utiliza si la propiedad |
|
Clase de anotación | Anotación | Propiedades |
---|---|---|
javax.xml.ws. Action |
La anotación @Action especifica la acción WS-Addressing asociada a una operación de servicio web. Si utiliza esta anotación con un método específico y genera el documento WSDL correspondiente, el atributo de ampliación Action de WS-Addressing se añadirá a los elementos de entrada y salida de la operación WSDL que corresponde a dicho método. Para añadir este atributo a la operación WSDL, debe especificar también la anotación @Addressing en la clase de implementación del punto final del servidor. Si no desea utilizar la anotación @Addressing, puede proporcionar su propio documento WSDL con el atributo Action ya definido. |
|
javax.xml.ws. BindingType |
La anotación @BindingType especifica el enlace que se ha de utilizar para publicar un punto final de este tipo . Aplique esta anotación a una clase de implementación de punto final del servidor. Importante: Puede utilizar la anotación @BindingType en la clase de implementación de punto final JavaBeans para habilitar MTOM especificando
javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDING o javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_MTOM_BINDING como valor de la anotación. |
|
javax.xml.ws. FaultAction |
La anotación @FaultAction especifica la acción de WS-Addressing que se añade a una respuesta errónea. Esta anotación se debe encontrar en una anotación @Action. Si utiliza esta anotación con un método concreto, el atributo de ampliación FaultAction de WS-Addressing se añadirá al elemento erróneo de la operación WSDL que corresponde a dicho método. Para añadir este atributo a la operación WSDL, debe especificar también la anotación @Addressing en la clase de implementación del punto final del servidor. Si no desea utilizar la anotación @Addressing, puede proporcionar su propio documento WSDL con el atributo Action ya definido. |
|
javax.xml.ws. RequestWrapper |
La anotación @RequestWrapper proporciona el bean de envoltura de solicitud generado, el nombre del elemento y el espacio de nombres para serialización y deserialización con el bean de envoltura de solicitud que se utiliza durante la ejecución. Cuando se empieza con un objeto Java, este elemento se utiliza para resolver conflictos de sobrecarga en modalidad literal de documento. En este caso, sólo se requiere el atributo Aplique esta anotación a los métodos de una SEI (Service Endpoint Interface) de cliente o servidor o a una clase de implementación de punto final de servidor. |
|
javax.xml.ws. ResponseWrapper |
La anotación @ResponseWrapper proporciona el bean de envoltura de solicitud generado por JAXB, el nombre de elemento y el espacio de nombres para la serialización y deserialización con el bean de envoltura de solicitud que se utiliza durante la ejecución. Cuando se empieza con un objeto Java, este elemento se utiliza para resolver conflictos de sobrecarga en modalidad literal de documento. En este caso, sólo se requiere el atributo Aplique esta anotación a los métodos de una SEI (Service Endpoint Interface) de cliente o servidor o a una clase de implementación de punto final de servidor. |
|
javax.xml.ws. RespectBinding |
La anotación @RespectBinding especifica si la implementación JAX-WS debe utilizar el contenido de wsdl:binding para el punto final. Cuando se especifica esta anotación, se realiza una comprobación para garantizar que se da soporte a todos los elementos de ampliación WSDL necesarios con el atributo enabled establecido en true. Aplique esta anotación a los métodos de la clase de implementación de punto final de servidor. |
|
javax.xml.ws. ServiceMode |
La anotación @ServiceMode especifica si un proveedor de servicio necesita acceder a todo un mensaje de protocolo o simplemente a los datos de carga del mensaje. Importante: La anotación @ServiceMode sólo está soportada en las clases anotadas con la anotación de proveedor @WebService.
|
|
javax.xml.ws. soap.Addressing |
La anotación @Addressing especifica que este servicio desea habilitar el soporte de WS-Addressing. Aplique esta anotación a los métodos de la clase de implementación de punto final de servidor. |
|
javax.xml.ws. soap.MTOM |
La anotación @MTOM especifica si el contenido binario del cuerpo del mensaje SOAP se envía utilizando MTOM. Aplique esta anotación a una clase de implementación de punto final de servicio. |
|
javax.xml.ws. WebFault |
La anotación @WebFault correlaciona errores WSDL con excepciones Java. Se utiliza para capturar el nombre del error durante la serialización del tipo JAXB que se genera a partir de un elemento global al que se hace referencia mediante un mensaje de error WSDL. También se puede utilizar para personalizar la correlación de las excepciones específicas de servicio con errores WSDL. Esta anotación sólo se puede aplicar a una clase de implementación de error en el cliente o en el servidor. |
|
javax.xml.ws. WebServiceProvider |
La anotación @WebServiceProvider indica que una clase cumple con los requisitos para una clase de implementación de proveedor JAX-WS. Importante:
|
|
javax.xml.ws. WebServiceRef |
La anotación @WebServiceRef define una referencia a un servicio web invocada por el cliente. Nota:
|
|
javax.xml.ws. WebServiceRefs |
La anotación @WebServiceRefs asocia diversas anotaciones @WebServiceRef con una clase determinada. Nota: La anotación @WebServiceRef sólo está soportada en determinados tipos de clase. Ejemplos son las clases de implementación de punto final JAX-WS, las clases de manejador JAX-WS, las clases Enterprise JavaBeans y las clases de servlet. Se da soporte a esta anotación en los mismos tipos de clases que a la anotación @Resource. Consulte la especificación Java Platform, Enterprise Edition (Java EE) 5 para obtener una lista completa de los tipos de clase soportados.
|
|
Clase de anotación | Anotación | Propiedades |
---|---|---|
javax.annotation. Resource |
La anotación @Resource indica un recurso WebServiceContext que necesita la aplicación. Nota:
Al aplicar esta anotación a un campo de tipo de contexto WebServiceen la clase de implementación de punto final de servidor para un punto final JavaBeans o un punto final de proveedor, el contenedor inyecta una instancia del contexto WebServiceen el campo especificado. Cuando se utiliza esta anotación en lugar de la anotación @WebServiceRef, se aplican las reglas descritas para la anotación @WebServiceRef. |
|
javax.annotation. Resources |
La anotación @Resources asocia varias anotaciones @Resource con una clase específica y sirve como contenedor para varias declaraciones de recursos. |
|
javax.annotation. PostConstruct |
La anotación @PostConstruct marca un método que se debe ejecutar una vez realizada la inclusión de la dependencia en la clase. Aplique esta anotación a un manejador de aplicaciones JAX-WS, una clase de implementación de punto final del servidor. |
|
javax.annotation. PreDestroy |
La anotación @PreDestroy indica un método que debe ejecutarse cuando una instancia está en proceso de ser suprimida por el contenedor. Aplique esta anotación a un manejador de aplicaciones JAX-WS o una clase de implementación de punto final del servidor. |
|
Clase de anotación | Anotación | Propiedades |
---|---|---|
com.ibm.websphere. wsaddressing. jaxws21. SubmissionAddressing
|
La anotación @SubmissionAddressing especifica que este servicio desea habilitar el soporte de WS-Addressing para la especificación 2004/08 de WS-Addressing. Esta anotación forma parte de la implementación de IBM de la especificación JAX-WS 2.1 . Aplique esta anotación a los métodos de la clase de implementación de punto final de servidor. |
|