Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)


10.8 Bean Validation実装時の注意事項

この節では,Bean Validation実装時の注意事項について説明します。

Bean Validation 1.0仕様での注意事項

Bean Validation 1.0仕様では,クラスパス上に配置できるvalidation.xmlは一つだけです。J2EEアプリケーションのクラスパス上に複数のvalidation.xmlを配置しないでください。

Bean Validation 2.0仕様での注意事項
  • java:comp/ValidatorFactoryのルックアップや@ResourceアノテーションによるValidatorFactoryの取得と,java:comp/Validatorのルックアップや@ResourceアノテーションによるValidatorの取得はできません。ValidatorFactoryやValidatorオブジェクトを取得する場合はCDIの@Injectアノテーションを用いて注入してください。

  • Webアプリケーション内にvalidation.xmlを含めることはできません。代わりにアプリケーション内のライブラリJAR内にvalidation.xmlを格納してください。Webアプリケーション内にvalidation.xmlを含めた場合,validation.xmlの指定値が適用されないで,デフォルトの動作となるおそれがあります。

  • 次のライブラリをユーザアプリケーションに含めることや,コンテナ拡張ライブラリとしてクラスパスに追加することはできません。また,一部を除き,ユーザアプリケーションから直接参照することもできません。ユーザアプリケーション,およびコンテナ拡張ライブラリとして使用できないライブラリを次の表に示します。

    表10‒7 ユーザアプリケーション,およびコンテナ拡張ライブラリとして使用できないライブラリ

    ライブラリ名

    パッケージ名

    参照可否

    Hibernate Validator

    org.hibernate.validator

    不可

    Java ClassMate

    com.fasterxml.classmate

    不可

    上記の表のライブラリは製品側で提供しています。ユーザ側で追加しても製品提供クラスが優先されるため,ライブラリのバージョンの差異などによって,アプリケーションが意図しない動作となるおそれがあります。

Message Interpolatorのデフォルトのメッセージに関する注意事項

Message Interpolatorのデフォルトのメッセージは,標準仕様に記載されている内容と異なります。アプリケーションサーバにおけるMessage Interpolatorのメッセージのデフォルト値を,次の表に示します。

表10‒8 アプリケーションサーバにおけるMessage Interpolatorのメッセージのデフォルト値

メッセージプロパティのキー

デフォルト値

javax.validation.constraints.AssertFalse.message

must be false

javax.validation.constraints.AssertTrue.message

must be true

javax.validation.constraints.Digits.message

numeric value out of bounds (<{integer} digits>.<{fraction} digits> expected)

javax.validation.constraints.Future.message

must be in the future

javax.validation.constraints.Max.message

must be less than or equal to {value}

javax.validation.constraints.Min.message

must be greater than or equal to {value}

javax.validation.constraints.NotNull.message

may not be null

javax.validation.constraints.Null.message

must be null

javax.validation.constraints.Past.message

must be in the past

javax.validation.constraints.Pattern.message

must match "{regexp}"

javax.validation.constraints.Size.message

size must be between {min} and {max}