RAR 模組中的 Bean 驗證
WebSphere® Application Server 會驗證資源配接器保存檔 (RAR) JavaBeans 限制符合 Java™ 連接器架構 (JCA) 1.6 版規格。
- ResourceAdapter
- ManagedConnectionFactory
- ActivationSpec
- AdministeredObject
驗證 RAR Bean 時,Application Server 會根據 Application Server 探索到的 Bean 驗證部署描述子,建立驗證器 Factory 的實例。 然後,從 Factory 取得驗證器實例,並用來驗證 Bean 實例。

內建限制註釋

- @Min
指定以這個註釋來裝飾的配置內容的最小值。值必須大於或等於指定的下限。
- @Max
指定以這個註釋來裝飾的配置內容的最大值。值必須小於或等於指定的上限。
- @Size
指定以這個註釋來裝飾的配置內容的值範圍。值必須大於或等於指定的下限,並且小於或等於指定的上限。
- @NotNull
指定以這個註釋來裝飾的配置內容的值不得為空值。亦即,這是必要內容。
下列範例是一個使用內建限制註釋來裝飾的 RAR Bean 類別。
當 Application Server 建立和配置 MyConnector 類別的實例時,serverName 配置內容的值不得為空值,而且 instanceCount 內容的值必須至少為 1。 否則會發生限制驗證異常狀況,以 ResourceAdapter Bean 來說,資源配接器將無法啟動。如需相關資訊,請參閱「對 RAR 模組中的 Bean 驗證進行疑難排解」主題。
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;}
…
RAR Bean 驗證描述子
您可以透過 RAR 模組所提供的 XML 描述子來宣告 Bean 驗證限制。在最簡單的情況下,RAR 驗證描述子由 validation.xml 檔中宣告的驗證配置,以及宣告 RAR Bean 驗證限制的零個或多個 XML 檔所組成。含有限制宣告的檔案是在驗證配置 (validation.xml) 的 constraint-mapping 元素中指定。
您必須將驗證描述子套裝在 RAR 模組的 META-INF 目錄中。在驗證描述子中宣告的任何自訂限制註釋類別,也必須套裝在 RAR 模組中。
下列範例是一個簡單的 RAR 驗證描述子,其中宣告限制 meta 資料,如同「內建限制註釋」一節所顯示的程式碼。
<?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>Value is not null</message>
</constraint>
</field>
<field name="instanceCount">
<valid/>
<!-- @Min(1) -->
<constraint annotation="javax.validation.constraints.Min">
<message>Minimum possible value is 1</message>
<element name="value">1</element>
</constraint>
</field>
</bean>
<constraint-mapping>
套裝的 RAR 模組 MyResourceAdapter.rar 如下所示:my/
company/
MyConnector.class
. . .
META-INF
/validation.xml
/constraints.xml
第三方 Bean 驗證
WebSphere Application Server 支援使用不同的 Bean 驗證實作。 如果資源配接器需要的 Bean 驗證實作不同於本產品所提供的實作,而且 RAR 提供 Bean 驗證實作,則您必須將包含 Bean 驗證實作的 JAR 檔套裝在 RAR 模組根目錄中。
RAR 模組還必須包含單一驗證配置描述子 (validation.xml),其可套裝在 RAR 模組的 META-INF 目錄中,或在 Bean 驗證 JAR 檔的 META-INF/services 目錄中,但不能同時套裝在這兩個目錄中。
RAR Bean 驗證配置探索
驗證 RAR Bean 時,Application Server 會根據 RAR META-INF 目錄中所提供的 Bean 驗證描述子,引導 RAR 專用的 Bean 驗證配置。 如果描述子不存在,伺服器會使用 RAR 類別載入環境定義中探索到的第一個驗證描述子來引導配置,例如,套裝在 RAR 中的第三方 Bean 驗證中所提供的驗證描述子。 最後,伺服器會使用本產品所提供的預設驗證配置。
然後,伺服器會建立已探索到的 Bean 驗證配置專用的驗證器 Factory,並使用此 Factory 建立驗證器實例以驗證 RAR Bean 實例。 當您部署的 RAR 有提供 Bean 驗證描述子時,您必須採取額外步驟,以確保負責載入 RAR 的類別載入器,也會載入套裝在 RAR 中的 Bean 驗證描述子及類別。
對於內嵌的 RAR,在您已部署內嵌 RAR 的應用程式之後,您必須將應用程式類別載入器的委派模式設定為「母項最後(子項最先)」。 如需相關資訊,請參閱「配置應用程式類別載入器」主題。
對於獨立式 RAR,您必須將該 RAR 安裝為單獨的資源提供者。如需相關資訊,請參閱「資源配接器設定」主題。