验证器初始化/强制转换

时间:2012-03-07 09:11:24

标签: java spring validation

使用个人验证器时出错。

这是我的Validator,第一个是Number.java

@java.lang.annotation.Documented
@Constraint( validatedBy = NumberValidator.class )
@java.lang.annotation.Target( value = { java.lang.annotation.ElementType.FIELD } )
@java.lang.annotation.Retention( value = java.lang.annotation.RetentionPolicy.RUNTIME )
public @interface Number
{
    String message( ) default "Default msg";    
    Class<?>[] groups( ) default {};    
    Class<? extends Payload>[] payload( ) default {};
}

然后是NumberValidator.java

public class NumberValidator implements ConstraintValidator<Number, String>
{
    @Override
    public void initialize( Number constraintAnnotation )
    {}

    @Override
    public boolean isValid( String value, ConstraintValidatorContext context )
    {
        return NumberUtils.isNumber( value ); // check if the string value is a number
    }
}

然后我使用@Number注释。

它工作到昨天,我什么都没改变(我想),但现在我有这个错误:

Unable to initialize commons.validator.NumberValidator
[...]
Caused by: java.lang.ClassCastException: $Proxy47 cannot be cast to commons.validator.annotation.Number

0 个答案:

没有答案