Validación de beans en módulos RAR
WebSphere Application Server valida las restricciones de JavaBeans de RAR (archivo de adaptador de recursos) de conformidad con la especificación JCA (Java™ Connector Architecture) versión 1.6.
- ResourceAdapter
- ManagedConnectionFactory
- ActivationSpec
- AdministeredObject
Al validar un bean RAR, el servidor de aplicaciones crea una instancia de una fábrica de validadores de acuerdo con el descriptor de despliegue de validación de beans descubierto por el servidor de aplicaciones. Luego, se obtiene una instancia de validador de la fábrica y se utiliza para validar la instancia del bean.

Anotaciones de restricción incorporadas

- @Min
Especifica el valor mínimo de la propiedad de configuración decorada con esta anotación. El valor debe ser mayor o igual que el mínimo especificado.
- @Max
Especifica el valor máximo de la propiedad de configuración decorada con esta anotación. El valor debe menor o igual que el máximo especificado.
- @Size
Especifica el rango de valores de la propiedad de configuración decorada con esta anotación. El valor debe ser mayor o igual que el mínimo especificado y ser menor o igual que el máximo especificado.
- @NotNull
Especifica que el valor de la propiedad de configuración decorada con esta anotación no debe ser nulo. Es decir, la propiedad es necesaria.
El ejemplo siguiente es una clase de bean RAR que se decora con anotaciones de restricción incorporadas.
El valor de la propiedad de configuración serverName no debe ser nulo y el valor de la propiedad instanceCount debe ser al menos 1 cuando el servidor de aplicaciones crea y configura una instancia de la clase MyConnector. De lo contrario, se produce una excepción de validación de restricción y, en el caso del bean ResourceAdapter, el adaptador de recursos no se inicia. Consulte el tema Resolución de problemas de validación de beans en módulos RAR para obtener más información.
package com.my.company;
@Connector(…)
public class MyConnector implements ResourceAdapter, Serializable
{
@ConfigProperty(type=java.lang.String.class,defaultValue="WAS")
private String serverName;
@NotNull()
public String getServerName() {return serverName;}
private Integer instanceCount = 0;
@Min(value=1)
public Integer getInstanceCount() {return instanceCount;}
…
Descriptor de validación de bean RAR
Se pueden declarar restricciones de validación de beans mediante un descriptor XML proporcionado por un módulo RAR. En el caso más simple, un descriptor de validación RAR consiste en la configuración de validación declarada en el archivo validation.xml y cero o más archivos XML que declaran restricciones de validación de beans RAR. Los archivos que contienen declaraciones de restricciones se especifican en los elementos constraint-mapping de la configuración de validación (validation.xml).
Debe empaquetar el descriptor de validación en el directorio META-INF de un módulo RAR. Cualquier clase de anotación de restricción personalizada declarada en el descriptor de validación también se debe empaquetar en el módulo RAR.
El ejemplo siguiente es un descriptor de validación RAR simple que declara metadatos de restricción como el código que se muestra en la sección "Anotaciones de restricción incorporadas".
<?xml version="1.0" encoding="UTF-8"?>
<validation-config
xmlns=http://jboss.org/xml/ns/javax/validation/configuration
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=http://jboss.org/xml/ns/javax/validation/configuration validation-configuration-1.0.xsd>
<constraint-mapping>META-INF/constraints.xml</constraint-mapping>
</validation-config>
<constraint-mappings
xmlns=http://jboss.org/xml/ns/javax/validation/mapping
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=http://jboss.org/xml/ns/javax/validation/mapping validation-mapping-1.0.xsd>
<default-package>com.my.company</default-package>
<bean class="MyConnector" ignore-annotations="true">
<field name="serverName">
<valid/>
<!-- @NotNull() -->
<constraint annotation="javax.validation.constraints.NotNull">
<message>El valor no es nulo</message>
</constraint>
</field>
<field name="instanceCount">
<valid/>
<!-- @Min(1) -->
<constraint annotation="javax.validation.constraints.Min">
<message>El valor mínimo posible es 1</message>
<element name="value">1</element>
</constraint>
</field>
</bean>
<constraint-mapping>
El módulo RAR empaquetado, MyResourceAdapter.rar, es similar al siguiente: my/
company/
MyConnector.class
. . .
META-INF
/validation.xml
/constraints.xml
Validación de beans de terceros
WebSphere Application Server admite la utilización de diversas implementaciones de validación de beans. Si un adaptador de recursos requiere una implementación de validación bean diferente de la implementación que proporciona el producto y el archivo RAR proporciona la implementación de validación de beans, debe empaquetar el archivo JAR que contiene la implementación de validación de beans en el directorio raíz del módulo RAR.
El módulo RAR también debe contener un descriptor de configuración de validación único (validation.xml), que se puede empaquetar en el directorio META-INF del módulo RAR o en el directorio META-INF/services del archivo JAR de validación de bean, pero no ambos.
Descubrimiento de la configuración de validación de beans RAR
Al validar beans RAR, el servidor de aplicaciones ejecuta el programa de arranque de la configuración de validación de beans, que es específico del archivo RAR, según el descriptor de validación de beans proporcionado en el directorio META-INF del RAR. Si el descriptor no existe, el servidor ejecuta el programa de arranque de la configuración utilizando el primer descriptor de validación descubierto en el contexto de carga de clases RAR, como por ejemplo el proporcionado en la validación de un bean de terceros empaquetado en el RAR. Por último, el servidor utiliza la configuración de validación predeterminada proporcionada por el producto.
A continuación, el servidor crea una fábrica de validadores específica de la configuración de validación de beans descubierta y utiliza esta fábrica para crear instancias de validación para validar las instancias de bean RAR. Al desplegar un archivo RAR que proporciona un descriptor de validación de beans, debe realizar pasos adicionales para asegurarse de que el cargador de clases que carga el archivo RAR cargue el descriptor de validación de beans y las clases empaquetadas en el archivo RAR.
Para un archivo RAR incorporado, después de haber desplegado la aplicación que incluye el archivo RAR, debe establecer la modalidad de delegación del cargador de clases de aplicación en Padre último (Hijo primero). Consulte el tema Configuración de cargadores de clases de aplicaciones para obtener más información.
Para un archivo RAR autónomo, debe instalar el archivo RAR como un proveedor de recursos aislado. Consulte el tema sobre los valores del adaptador de recursos para obtener más información.