Ez a szabály jelzővel rendelkezik javax.validation.Validation.buildDefaultValidatorFactory() vagy Validation.byDefaultProvider().configure().buildValidatorFactory() . A Liberty beanValidation-1.0 és beanValidation-1.1 A megvalósításokat a Apache Bean Validation biztosítja. A Java EE 8 változatban a Liberty szolgáltatás által biztosított komponens érvényesítési megvalósítás beanValidation-2.0 A (z) Hibernate Validator értékre változott. Az Apache komponensérvényesítési megvalósítása igényel egy nem felügyelt ValidatorFactory objektumot létrehozó alkalmazást, és a ConstraintValidatorFactory egy CDI által felügyelt ConstraintValidator példányt ad vissza. A Hibernate Validator azonban csak CDI által felügyelt ConstraintValidator objektumok előállítását támogatja az alapértelmezett ValidatorFactory objektum segítségével, amelyet a kiszolgáló futási környezet ad. A kiszolgáló által felügyelt ValidatorFactory a következő használatával érhető el: @Resource , @Inject Vagy közvetlen JNDI kikeresés.
Az alkalmazások a viselkedés változását láthatják a használat során javax.validation.Validation.buildDefaultValidatorFactory() vagy Validation.byDefaultProvider().configure().buildValidatorFactory() . Megjegyzendő, hogy más személyre szabási metódusok is hívhatók buildValidatorFactory() Meghívott, például messageInterpolator() , traversableResolver() , parameterNameProvider() , vagy constraintValidatorFactory() .
Összegezve, a felhasználók, akik a által visszaadott objektumokat várják ConstraintValidatorFactory A CDI-nek meg kell valósítnia a meglévő komponens érvényesítési kódjának módosításait.
Az alábbi kód olyan komponensérvényesítési használatot mutat be, amelyet át kell dolgozni:
//Original application behavior
Validator validator = Validation.byDefaultProvider().configure().messageInterpolator(messageResourceInterpolator).buildValidatorFactory().getValidator();
Az alábbi kód a problémás kód javítását mutatja be:
//Recommended application behavior (potential Automated Fix)
@Inject //@Resource or a jndi lookup of java:comp/ValidatorFactory could also be used to obtain the container's default ValidatorFactory
ValidatorFactory validatorFactory;
Validator validator = validatorFactory.usingContext().messageInterpolator(messageResourceInterpolator).getValidator();
Az érvényesítés konfigurálásával kapcsolatos további információkért WebSphere Liberty kiszolgálón, tekintse meg a Bean Validation 2.0 dokumentációt.