请勿在部署描述符中将 Apache 用作缺省提供程序

此规则会标记任何 org.apache.bval.jsr* (bval 1.1) 和 org.apache.bval.jsr303* (bval 1.0) validation.xml 部署描述符中的包引用。 Bean Validation 2.0 和更高版本使用 Hibernate Validator 实现,而不是用于 Bean Validation 1.0 和 1.1 的 Apache BVal 实现。 提供了自动修订,用于覆盖配置以使用 Hibernate Validator 类。

例如,给定 validation.xml 文件中的以下元素:

<default-provider>org.apache.bval.jsr.ApacheValidationProvider</default-provider>
<message-interpolator>org.apache.bval.jsr.DefaultMessageInterpolator</message-interpolator>
<traversable-resolver>org.apache.bval.jsr.resolver.DefaultTraversableResolver</traversable-resolver>
<constraint-validator-factory>org.apache.bval.jsr.DefaultConstraintValidatorFactory</constraint-validator-factory>
<parameter-name-provider>org.apache.bval.jsr.parameter.DefaultParameterNameProvider</parameter-name-provider>

自动修订会使用 Hibernate 验证器值覆盖值:

<default-provider>org.hibernate.validator.HibernateValidator</default-provider>
<message-interpolator>org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator</message-interpolator>
<traversable-resolver>org.hibernate.validator.engine.resolver.DefaultTraversableResolver</traversable-resolver>
<constraint-validator-factory>org.hibernate.validator.engine.ConstraintValidatorFactoryImpl</constraint-validator-factory>

缺省值 parameter-name-provider 是内部包类 org.hibernate.validator.internal.engine.DefaultParameterNameProvider 我不知道 自动修订会删除该设置,以便使用缺省值。

定制配置复制到应用程序构建文件以启用修订自动化。

有关在 WebSphere Liberty 中配置验证的更多信息,请参阅 Bean Validation 2.0 文档。