Реализация JSR 303 дает ClassCastException

Я реализую пользовательскую аннотацию проверки с использованием JSR 303, и я получаю сообщение об ошибке ниже. Я следую подробностям, приведенным в Проверка перекрестного поля с помощью Hibernate Validator (JSR 303)

java.lang.ClassCastException: com.sun.proxy.$Proxy95 cannot be cast to com.my.validator.FieldMatch
at com.my.validator.FieldMatchValidator.initialize(FieldMatchValidator.java:14) ~[classes/:na]
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager.initializeConstraint(ConstraintValidatorManager.java:261) ~[hibernate-validator-5.2.4.Final.jar:5.2.4.Final]
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager.createAndInitializeValidator(ConstraintValidatorManager.java:183) ~[hibernate-validator-5.2.4.Final.jar:5.2.4.Final]
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager.getInitializedValidator(ConstraintValidatorManager.java:122) ~[hibernate-validator-5.2.4.Final.jar:5.2.4.Final]
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getConstraintValidatorNoUnwrapping(ConstraintTree.java:303) ~[hibernate-validator-5.2.4.Final.jar:5.2.4.Final]
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getConstraintValidatorInstanceForAutomaticUnwrapping(ConstraintTree.java:244) ~[hibernate-validator-5.2.4.Final.jar:5.2.4.Final]
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getInitializedConstraintValidator(ConstraintTree.java:163) ~[hibernate-validator-5.2.4.Final.jar:5.2.4.Final]
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:116) ~[hibernate-validator-5.2.4.Final.jar:5.2.4.Final]
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:87) ~[hibernate-validator-5.2.4.Final.jar:5.2.4.Final]
at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:73) ~[hibernate-validator-5.2.4.Final.jar:5.2.4.Final]
at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:617) ~[hibernate-validator-5.2.4.Final.jar:5.2.4.Final]

Кто-нибудь может мне помочь?


person rvv1980    schedule 17.09.2016    source источник
comment
Не могли бы вы поделиться определениями вашей аннотации ограничения и валидатора ограничения? Аннотация ограничения может ссылаться на средство проверки для другого типа аннотации.   -  person Gunnar    schedule 19.09.2016
comment
У меня было такое же исключение с другой проблемой. По ошибке у меня было два MyCustomValidator на двух разных путях.   -  person Hamedz    schedule 11.01.2018


Ответы (1)


Если вы написали пользовательскую аннотацию проверки, убедитесь, что @Constraint(validatedBy = FieldMatchValidator.class) имеет правильный класс проверки. Если validatedBy имеет другой класс, вы получите ClassCastException. Обратитесь к аналогичной проблеме, о которой сообщалось по адресу Как решить проблему приведения java.lang.ClassCastException: $Proxy не может быть приведен к NotEmpty, который является аннотацией

@Target({TYPE, ANNOTATION_TYPE})
@Retention(RUNTIME)
@Constraint(validatedBy = FieldMatchValidator.class)
@Documented
public @interface FieldMatch
{
}
person abaghel    schedule 20.09.2016