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.

En la versión 6.1 Feature Pack for Web Services, el comportamiento predeterminado es explorar los módulos de aplicaciones web anteriores a Java Platform, Enterprise Edition (Java EE) 5 para identificar los servicios JAX-WS y explorar los módulos de aplicaciones web y los módulos EJB anteriores aJava EE 5 para los clientes de servicios durante la instalación de la aplicación. Puesto que el comportamiento predeterminado para WebSphere Application Server Versión 7.0 y posteriores es no explorar los módulos anteriores aJava EE 5 para las anotaciones durante la instalación de la aplicación o el inicio del servidor, para conservar la compatibilidad con versiones anteriores con el paquete de características de los releases anteriores, debe configurar una de las propiedades siguientes:
  • Puede establecer la propiedad UseWSFEP61ScanPolicy de META-INF/MANIFEST.MF de un archivo WAR o módulo EJB en true. Por ejemplo:
    Manifest-Version: 1.0
    UseWSFEP61ScanPolicy: true
    Cuando esta propiedad se establece en 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 es false 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 personalizada com.ibm.websphere.webservices.UseWSFEP61ScanPolicy en true. Debe cambiar el valor en cada uno de los servidores que requiera un cambio en el comportamiento predeterminado.
Si la propiedad se establece en el archivo META-INF/MANIFEST.MF del módulo, este valor tiene prioridad sobre la propiedad JVM personalizada del servidor. Cuando se utiliza cualquier propiedad, se debe establecer la anotación deseada explorando el comportamiento antes de que se instale la aplicación. No puede cambiar de manera dinámica el comportamiento de la exploración después de instalar una aplicación. Si son necesarios cambio sobre el comportamiento después de haber instalado la aplicación, se debe desinstalar antes la aplicación, especificar el comportamiento deseado de la exploración utilizando la propiedad adecuada y, por último, volver a instalar la aplicación. Cuando se estén federando nodos que tengan la propiedad 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.
Las anotaciones soportadas por JAX-WS se muestran en la tabla siguiente. El destino de las anotaciones es aplicable a estos objetos Java:
  • 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
Tabla 1. Anotaciones de metadatos de servicios web (JSR 181). Describe las anotaciones de metadatos de servicios web soportadas y sus propiedades asociadas.
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:
  • Una clase Java que implemente un servicio web debe especificar la anotación de proveedor @WebService o @WebService. Las dos anotaciones no pueden estar presentes. Esta anotación se puede aplicar a una SEI de cliente o servidor o a una clase de implementación del punto final del servidor.
  • Si la anotación hace referencia a una SEI mediante el atributo endpointInterface, la SEI también se debe anotar con la anotación @WebService.
  • Consulte los métodos de exposición en la información de servicios web JAX-WS basados en SEI para obtener información sobre las prácticas recomendadas para utilizar las anotaciones @WebService y @WebMethod en una implementación de punto final de servicio para especificar los métodos Java que desea exponer como servicios web JAX-WS.
  • Destino de anotación: Type
  • Propiedades:
    - name
    El nombre de wsdl:portType. El valor predeterminado es el nombre no calificado de la clase o interfaz Java. (Serie)
    - targetNamespace
    Especifica el espacio de nombres XML de los elementos WSDL y XML generados a partir del servicio web. El valor predeterminado es el espacio de nombres correlacionado a partir del nombre del paquete que contiene el servicio web. (Serie)
    - serviceName
    Especifica el nombre de servicio del servicio web: wsdl:service. El valor predeterminado es el nombre simple de la clase Java + Service. (Serie)
    - endpointInterface
    Especifica el nombre calificado de la interfaz de punto final de servicio que define el contrato de servicio web abstracto de los servicios. Si se especifica, se utiliza la interfaz de punto final de servicio para determinar el contrato WSDL abstracto. (Serie)
    - portName
    wsdl:portName. El valor predeterminado es WebService.name más Port. (Serie)
    - wsdlLocation
    Especifica la dirección web del documento WSDL que define el servicio web. La dirección web puede ser relativa o absoluta. (Serie)
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.

  • Destino de anotación: Method
  • Propiedades:
    - operationName
    Especifica el nombre de wsdl:operation que coincide con este método. El valor predeterminado es el nombre del método Java. (Serie)
    - action
    Define la acción de esta operación. En los enlaces SOAP, este valor determina el valor de la cabecera SOAPAction y se debe establecer de forma explícita.
    - exclude
    Especifica si se ha de excluir un método del servicio web. El valor predeterminado es false. (Booleano)
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.

  • Destino de anotación: Method
  • No hay propiedades para la anotación Oneway.
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.

  • Destino de anotación: Parameter
  • Propiedades:
    - name
    El nombre del parámetro. Si la operación es una RPC (Remote Procedure Call) y no se especifica el atributo partName, este es el nombre del atributo wsdl:part que representa el parámetro. Si la operación es de estilo documento o si el parámetro se correlaciona con una cabecera, -name es el nombre local del elemento XML que representa el parámetro. Este atributo es necesario si la operación es de estilo documento, el estilo de parámetro es BARE, y la modalidad OUT o INOUT. (Serie)
    - partName
    Define el nombre del atributo wsdl:part que representa este parámetro. Sólo se utiliza si la operación es de estilo RPC o si el estilo de documento y el estilo de parámetro es BARE. (Serie)
    - targetNamespace
    Especifica el espacio de nombres XML del elemento XML del parámetro. Se aplica únicamente a los enlaces de documentos cuando el atributo se correlaciona con un elemento XML. El valor predeterminado es el espacio de nombres de destino (targetNamespace) del servicio web. (Serie)
    - mode
    El valor representa la dirección en que fluye el parámetro para este método. Los valores válidos son IN, INOUT y OUT. (Serie)
    - header
    Especifica si el parámetro es una cabecera de mensaje y no el cuerpo de un mensaje. El valor predeterminado es false. (Booleano)
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.

  • Destino de anotación: Method
  • Propiedades:
    - name
    Especifica el nombre del valor de retorno como figura en el archivo WSDL y aparece en los mensajes de la comunicación. Para los enlaces RPC, este es el nombre del atributo wsdl:part que representa el valor de retorno. Para los enlaces de documentos, el parámetro -name es el nombre local del elemento XML que representa el valor de retorno. El valor predeterminado es return para enlaces RPC y DOCUMENT/WRAPPED. El valor predeterminado es el nombre de método más Response para enlaces DOCUMENT/BARE. (Serie)
    - targetNamespace
    Especifica el espacio de nombres XML para el valor de retorno. Este parámetro sólo se utiliza si la operación es de estilo RPC o si la operación es de estilo DOCUMENT y el estilo de parámetro es BARE. (Serie)
    - header
    Especifica si el resultado se lleva a cabo en una cabecera. El valor predeterminado es false. (Booleano)
    - partName
    Especifica el nombre de la parte para el resultado con las operaciones RPC o DOCUMENT/BARE. El valor predeterminado es @WebResult.name. (Serie)
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.

  • Destino de anotación: Type
  • Propiedades:
    - file
    Especifica la ubicación del archivo de la cadena de manejadores. La ubicación del archivo es un java.net.URL absoluto con formato externo o una vía de acceso relativa al archivo de clases. (Serie)
    - name
    Especifica el nombre de la cadena de manejadores en el archivo de configuración. (Serie)
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 style es DOCUMENT. Si la anotación de nivel de método no se especifica, se utiliza el comportamiento @SOAPBinding del tipo.

  • Destino de anotación: Type o Method
  • Propiedades:
    - style
    Define el estilo de codificación de los mensajes enviados a y desde el servicio web. Los valores válidos son DOCUMENT y RPC. El valor predeterminado es DOCUMENT. (Serie)
    - use
    Define el formato utilizado para los mensajes enviados a y desde el servicio web. El valor predeterminado es LITERAL. ENCODED no está soportado. (Serie)
    - parameterStyle
    Determina si los parámetros del método representan todo el cuerpo del mensaje o si los parámetros son elementos envueltos en un elemento de nivel superior con el nombre de la operación. Los valores válidos son WRAPPED o BARE. Sólo puede utilizar el valor BARE con los enlaces de estilo DOCUMENT. El valor predeterminado es WRAPPED. (Serie)

Tabla 2. Anotaciones JAX-WS (JSR 224). Describe las anotaciones JAX-WS admitidas y sus propiedades asociadas.
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.

  • Destino de anotación: Method
  • Propiedades:
    - fault
    Especifica la matriz de FaultAction para el wsdl:fault de la operación. (Serie)
    - input
    Especifica la acción para el wsdl:input de la operación. (Serie)
    - output
    Especifica la acción para el wsdl:output de la operación. (Serie)
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.
  • Destino de anotación: Type
  • Propiedades:
    - value
    Indica el identificador de enlace de la dirección web. Los valores válidos son javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING, javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING y javax.xml.ws.http.HTTPBinding.HTTP2HTTP_BINDING. El valor predeterminado es javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING. (Serie)
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.

  • Destino de anotación: Method
  • Propiedades:
    - value
    Especifica la acción wsdl:fault de la operación. (Serie)
    - output
    Especifica el nombre de la clase de excepción. (Serie)
    - className
    Especifica el nombre de la clase que representa la envoltura de la petición. (Serie)
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 className.

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.

  • Destino de anotación: Method
  • Propiedades:
    - localName
    Especifica el nombre local del elemento del esquema XML que representa la envoltura de solicitud. El valor predeterminado es operationName como se ha definido en la anotación javax.jws.WebMethod. (Serie)
    - targetNamespace
    Especifica el espacio de nombres XML del método de envoltura de solicitud. El valor predeterminado es el espacio de nombres de destino de la SEI. (Serie)
    - className
    Especifica el nombre de la clase que representa la envoltura de la petición. (Serie)
    - partName
    Especifica el nombre del atributo wsdl:part que representa el elemento esquema XML de la clase RequestWrapper. Esta propiedad es aplicable para JAX-WS 2.2 y posterior. (Serie)
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 className.

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.

  • Destino de anotación: Method
  • Propiedades:
    - localName
    Especifica el nombre local del elemento del esquema XML que representa la envoltura de solicitud. El valor predeterminado es operationName más Response. operationName se define en la anotación javax.jws.WebMethod . (Serie)
    - targetNamespace
    Especifica el espacio de nombres XML del método de envoltura de solicitud. El valor predeterminado es el espacio de nombres de destino de la SEI. (Serie)
    - className
    Especifica el nombre de la clase que representa la envoltura de la respuesta. (Serie)
    - partName
    Especifica el nombre del atributo wsdl:part que representa el elemento esquema XML de la clase ResponseWrapper. Esta propiedad es aplicable para JAX-WS 2.2 y posterior. (Serie)
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.

  • Destino de anotación: Method
  • Propiedades:
    - enabled
    Especifica si wsdl:binding se debe utilizar o no. El valor predeterminado es true. (Booleano)
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.
  • Destino de anotación: Type
  • Propiedades:
    - value
    Indica si la clase de proveedor acepta los datos de carga del mensaje, PAYLOAD o todo el mensaje MESSAGE. El valor predeterminado es PAYLOAD. (Serie)
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.

  • Destino de anotación: Type
  • Propiedades:
    - enabled
    Especifica si WS-Addressing está habilitado o no. El valor predeterminado es true. (Booleano)
    - required
    Especifica que las cabeceras de WS-Addressing deben estar presentes en los mensajes entrantes. El valor predeterminado es false. (Booleano)
    - responses
    Especifica el patrón de intercambio de mensajes que se ha de utilizar. El valor predeterminado es Responses.ALL. Esta propiedad es aplicable para JAX-WS 2.2 y posterior. (Serie)
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.

  • Destino de anotación: Class
  • Propiedades:
    - enabled
    Especifica si MTOM está habilitado para el punto final JAX-WS. El valor predeterminado es true. (Booleano)
    - threshold
    Especifica el tamaño mínimo para los mensajes que se envían utilizando MTOM. Cuando el tamaño del mensaje es inferior al entero especificado, el mensaje se escribe en el documento XML con el formato de datos base64 o hexBinary. (entero)
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.

  • Destino de anotación: Type
  • Propiedades:
    - name
    Especifica el nombre local del elemento XML que representa el error correspondiente en el archivo WSDL. Se debe especificar el valor real. (Serie)
    - targetNamespace
    Especifica el espacio de nombres del elemento XML que representa el error correspondiente del archivo WSDL. (Serie)
    - faultBean
    Especifica el nombre de la clase de bean de error. (Serie)
    - messageName
    Especifica el nombre del atributo wsdl:message que representa el error correspondiente del archivo WSDL. Esta propiedad es aplicable para JAX-WS 2.2 y posterior. (Serie)
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:
  • Una clase Java que implemente un servicio web debe especificar la anotación de proveedor @WebService o @WebService. Las dos anotaciones no pueden estar presentes.
  • La anotación @WebServiceProvider sólo está soportada en la clase de implementación de servicio.
Cualquier clase con la anotación @WebServiceProvider debe implementar la interfaz javax.xml.ws.Provider.
  • Destino de anotación: Type
  • Propiedades:
    - targetNamespace
    Especifica el espacio de nombres XML de los elementos WSDL y XML generados a partir del servicio web. El valor predeterminado es el espacio de nombres correlacionado a partir del nombre del paquete que contiene el servicio web. (Serie)
    - serviceName
    Especifica el nombre de servicio del servicio web: wsdl:service. El valor predeterminado es el nombre simple de la clase Java + Service. (Serie)
    - portName
    wsdl:portName. El valor predeterminado es el nombre de la clase más Port. (Serie)
    - wsdlLocation
    Dirección web del documento WSDL que define el servicio web. Este atributo es necesario. (Serie)
javax.xml.ws. WebServiceRef La anotación @WebServiceRef define una referencia a un servicio web invocada por el cliente.
Nota:
  • La anotación @WebServiceRef se puede utilizar para incluir instancias de puertos y servicios JAX-WS.
  • Sólo se da soporte a la anotación @WebServiceRef en determinados tipos de clases. 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.
  • Destino de anotación: Type, Field o Method
  • Propiedades:
    - name
    Especifica el nombre JNDI del recurso. El nombre de campo es el valor predeterminado para las anotaciones de campo. El nombre de propiedad JavaBeans que corresponde al método es el valor predeterminado para las anotaciones de método. Debe especificar un valor para las anotaciones de clase ya que no hay valor predeterminado. (Serie)
    - type
    Indica el tipo Java del recurso. El tipo de campo es el valor predeterminado para las anotaciones de campo. El tipo de la propiedad JavaBeans es el valor predeterminado para las anotaciones de método. Debe especificar un valor para las anotaciones de clase ya que no hay valor predeterminado. (Clase)
    - mappedName
    Especifica el nombre con el que correlacionar este recurso. (Serie)
    - value
    Indica el valor de la clase de servicio y es un tipo que amplía javax.xml.ws.Service. Este atributo es necesario si el tipo de la referencia es una interfaz de punto final de servicio. (Clase)
    - wsdlLocation
    Dirección web del documento WSDL que define el servicio web. Este atributo es necesario. (Serie)
    - lookup
    Especifica el nombre de búsqueda JNDI para el servicio web de destino. Esta propiedad es aplicable para JAX-WS 2.2 y posterior. (Serie)
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.
  • Destino de anotación: Type
  • Propiedades:
    - value
    Especifica una matriz para diversas declaraciones de referencias de servicio web. Este atributo es necesario.
Tabla 3. JAX-WS Common Annotations (JSR 250). Describe las anotaciones comunes JAX-WS admitidas y sus propiedades asociadas.
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.

  • Destino de anotación: Field o Method
  • Propiedades:
    - type
    Indica el tipo Java del recurso. Es necesario que utilice el valor predeterminado, java.lang.Object o javax.xml.ws.Web ServiceContext . Si el tipo es el valor predeterminado, el recurso se debe incluir en un campo o método. En este caso, el tipo del campo o el tipo de la propiedad JavaBeans definida por el método debe ser javax.xml.ws.WebServiceContext. (Clase)
    Si está utilizando esta anotación para inyectar un servicio web, consulte la descripción del atributo type de @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.
  • Destino de anotación: Field o Method
  • Propiedades:
    - value
    Especifica una matriz para diversas anotaciones @Resource. Este atributo es necesario.
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.

  • Destino de anotación: Method
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.

  • Destino de anotación: Method
Tabla 4. IBM. Describe las anotaciones de propiedad de IBM® soportadas y sus propiedades asociadas.
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.

  • Destino de anotación: Type
  • Propiedades:
    - enabled
    Especifica si WS-Addressing está habilitado o no. El valor predeterminado es true. (Booleano)
    - required
    Especifica que las cabeceras de WS-Addressing deben estar presentes en los mensajes entrantes. El valor predeterminado es false. (Booleano)