Anotaciones de metadatos de servicios web (JSR 181)

Utilizando las anotaciones de la especificación JSR 181, puede anotar una clase de implementación de servicio web o una interfaz de servicio web. A continuación, puede generar un servicio web con un asistente o publicando la aplicación en un servidor.

Nota: La clase Java™ que contiene cada anotación en el estándar JSR 181 se denomina javax.jws.xxx, donde xxx es el nombre de la anotación después del carácter '@'. Por ejemplo, el nombre de clase Java que corresponde a @WebService es javax.jws.webservice.
Nombre: Descripción: Propiedades: Definiciones:
@WebService Esta anotación se marca una clase Java o una interfaz de punto final de servicio (SEI) como que implementa una interfaz de servicio web.

Tres de las propiedades de la anotación sólo pueden utilizarse con una clase de implementación de punto final de servicio para un punto final de JavaBeans. Estas propiedades son serviceName, portName y endpointInterface.

Si la anotación hace referencia a una SEI mediante el atributo endpointInterface, la SEI también debe tener la anotación @WebService.

De forma predeterminada, todos los métodos públicos de una clase que especifica la anotación @WebService se exponen en el servicio web.

  • Destino de anotación: Type
  • Propiedades:
    - name
    El nombre de wsdl:portType. La propiedad name se correlaciona con una SEI o una clase de implementación Java. El valor predeterminado es el nombre no calificado de la interfaz o la clase Java. (String)
    - targetNamespace
    Especifica el espacio de nombres XML de los elementos WSDL y XML que se generan a partir del servicio web.
    • Si la anotación @WebService.targetNamespace está en una interfaz de punto final de servicio. El targetNamespace se utiliza para el espacio de nombres de wsdl:portType (y los elementos XML asociados).
    • Si la anotación @WebService.targetNamespace está en un bean de implementación de servicio que no hace referencia una interfaz de punto final de servicio (mediante el elemento de anotación endpointInterface), el targetNamespace se utiliza para wsdl:portType y wsdl:service (y los elementos XML asociados).
    • Si la anotación @WebService.targetNamespace está en un bean de implementación de servicio que hace referencia una interfaz de punto final de servicio (mediante el elemento de anotación endpointInterface), el targetNamespace se utiliza sólo para wsdl:service (y los elementos XML asociados).

    El valor predeterminado es el espacio de nombres que está correlacionado desde el nombre de paquete que contiene el servicio web. (String)

    - serviceName
    Especifica el nombre del servicio web: wsdl:service. Esta propiedad es no está permitida en las interfaces de punto final. El valor predeterminado es el nombre sencillo de la clase Java más Service. (String)
    - endpointInterface
    Especifica el nombre calificado de la interfaz del punto final de servicio que define el contrato del servicio web abstracto de los servicios. Si se especifica, se utiliza la interfaz de punto final de servicio para determinar el contrato WSDL abstracto. (String)
    - portName
    El wsdl:portName. La propiedad portName es el nombre del puerto de punto final. El valor predeterminado es WebService.name más Port. (String)
    - wsdlLocation
    Especifica la dirección web del documento WSDL que define el servicio web. La dirección web puede ser relativa o absoluta. (String)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface WebService{
	String name() default “”;
	String targetNamespace() default “”;
	String serviceName() default “”';
	String wsdlLocation() default “”;
	String endpointInterface() default “”;
	String portName() default “”;
};
@WebMethod Esta anotación denota un método que es una operación de servicio web.

Puede aplicar esta anotación a los métodos públicos en una interfaz de punto final de servicio (SEI) de cliente o servidor, o en una clase de implementación de punto final de servicio para un punto final de JavaBeans.

La anotación @WebMethod sólo está soportada en clases que tienen la anotación @WebService.

  • 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. (String)
    - action
    Define la acción de esta operación. En los enlaces SOAP, este valor determina el valor de la cabecera SOAPAction. (String)
    - exclude
    Especifica si se va a excluir un método del servicio web. Esta propiedad sólo puede utilizarse con una clase de implementación. Se utiliza para que un método heredado deje de exponerse como parte de este servicio web. Si se especifica este elemento, no deben especificarse otros elementos para @WebMethod. Esta propiedad es no está permitida en las interfaces de punto final.

    El valor predeterminado es false. (Boolean)

@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface WebMethod{
	String operationName() default “”;
	String action() default “”;
	boolean exclude() default false;
};
@Oneway Esta anotación denota un método como una operación unidireccional para un servicio web. Tiene un mensaje de entrada, pero no hay ningún mensaje de salida. Esta anotación sólo puede utilizarse en los métodos que no tengan ningún valor de retorno.

Puede aplicar esta anotación a los métodos públicos en una interfaz de punto final de servicio (SEI) de cliente o servidor, o en una clase de implementación de punto final de servicio para un punto final de JavaBeans.

  • Destino de anotación: Method
  • No hay propiedades en la anotación OneWay.
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface OneWay{
};
@WebParam Esta anotación personaliza la correlación de un parámetro individual con una parte de mensaje de servicio web y un elemento XML.

Puede aplicar esta anotación a los métodos públicos en una interfaz de punto final de servicio (SEI) de cliente o servidor, o en una clase de implementación de punto final de servicio para un punto final de JavaBeans.

  • Destino de anotación: Parameter
  • Propiedades:
    - name
    Si la operación es un estilo de llamada a procedimiento remoto (RPC) 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 un estilo documento o 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 un estilo de documento, el estilo de parámetro es BARE, y la modalidad OUT o INOUT. Si se especifica el atributo partName, el atributo name se ignora. (String)
    - partName
    Define el nombre del atributo wsdl:part que representa este parámetro. Utilice esta opción sólo si la operación es un estilo RPC, o si la operación es un estilo de documento y el estilo de parámetro es BARE. (String)
    - targetNamespace
    Especifica el espacio de nombres XML del elemento XML del parámetro. Sólo se aplica para los enlaces de documento cuando el atributo se correlaciona con un elemento XML. El valor predeterminado es el targetNamespace para el servicio web. (String)
    - mode
    El valor representa la dirección en la que fluye parámetro para este método. Los valores válidos son IN, INOUT y OUT. (String)
    - header
    Especifica si el parámetro está en una cabecera de mensaje y no en el cuerpo de un mensaje. El valor predeterminado es false. (Boolean)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({PARAMETER})
public @interface WebParam{
	public enum Mode{
		IN,
		OUT,
		INOUT
	};
	String name() default “”;
	String partName() default "";
	String targetNamespace() default “”;
	Mode mode() default Mode.IN
	boolean header() default false;
};
@WebResult Esta anotación personaliza cómo se correlaciona un valor de retorno con una parte WSDL o un elemento XML.

Puede aplicar esta anotación a los métodos públicos en una interfaz de punto final de servicio (SEI) de cliente o servidor, o en una clase de implementación de punto final de servicio para un punto final de JavaBeans.

  • 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, es el nombre del atributo wsdl:part que representa el valor de retorno. Para los enlaces de documento, el parámetro name es el nombre local del elemento XML que representa el valor de retorno. El valor predeterminado es return para los enlaces RPC y DOCUMENT/WRAPPED. El valor predeterminado es el nombre de método más Response para los enlaces DOCUMENT/BARE. (String)
    - targetNamespace
    Especifica el espacio de nombres XML para el valor de retorno. Utilice esta anotación sólo para los enlaces de documento cuando el valor de retorno se correlaciona con un elemento XML. El valor predeterminado es el targetNamespace del servicio web. (String)
    - header
    Especifica si el resultado se transporta en una cabecera. El valor predeterminado es false. (String)
    - partName
    Especifica el nombre de la parte para el resultado con las operaciones RPC o DOCUMENT/BARE. El valor predeterminado es @WebResult.name. (Boolean)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({METHOD})
public @interface WebResult{
	String name() default “return”;
	String targetNamespace default() “”;
	boolean header() default false;	
	String partName() default "";
};
@HandlerChain Esta anotación asocia el servicio web con una cadena de manejador definida externamente. Puede utilizar esta anotación si la configuración del manejador debe compartirse entre varios servicios web, y la configuración del manejador incorporado en el origen de la aplicación es ineficaz.

Aplique esta anotación a una interfaz de punto final de servicio (SEI) de cliente o servidor, o a una clase de implementación de punto final de servicio para un punto final de JavaBeans.

  • 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 desde el archivo de clase u origen. (String)
    - name
    Especifica el nombre de la cadena de manejadores en el archivo de configuración. (String)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface HandlerChain{
	String file();
	String name();
};
@SOAPBinding Esta anotación especifica la correlación del servicio web con el protocolo de mensajes SOAP.

Puede aplicar esta anotación a un tipo o los métodos públicos en una interfaz de punto final de servicio (SEI) de cliente o servidor, o en una clase de implementación de punto final de servicio para un punto final de beans Java.

La anotación a nivel de método está limitada por lo que puede especificar. Utilice la anotación sólo si la propiedad style tiene el valor DOCUMENT. Si la anotación a nivel de método no se especifica, se utiliza el comportamiento de @SOAPBinding del tipo.

  • Destino de anotación: Type o Method
  • Propiedades:
    - style
    Define el estilo de codificación de los mensajes que se envían hacia y desde el servicio web. Los valores válidos son DOCUMENT y RPC. El valor predeterminado es DOCUMENT. (String)
    - use
    Define la codificación que se utiliza para los mensajes que se envían hacia y desde el servicio web. El valor predeterminado es LITERAL. ENCODED no es un valor soportado. (String)
    - parameterStyle
    Determina si los parámetros de método representan todo el cuerpo del mensaje o si los parámetros son elementos que se envuelven en un elemento de nivel superior denominado como la operación. Los valores válidos son WRAPPED o BARE. Puede utilizar el valor BARE con los enlaces de estilo DOCUMENT. El valor predeterminado es WRAPPED. (String)
@Retention(value = RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface SOAPBinding{
	public enum Style{
		DOCUMENT,
		RPC
	};
	public enum Use{
		LITERAL,
	};
	public enum ParameterStyle{
		BARE,
		WRAPPED
	};
	Style style() default Style.DOCUMENT
	Use use() default Use.LITERAL
	ParameterStyle parameterStyle() default ParameterStyle.WRAPPED;
};
Icono que indica el tipo de tema Tema de referencia
Términos y condiciones para centros de información | Comentarios

Icono de indicación de fecha y hora Última actualización: 22 de abril de 2014

Nombre de archivo: rwsandoc003.html