java.lang.NoSuchMethodError:org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorContextImpl

问题描述 投票:0回答:1

在我的自定义 ConstraintValidator 的代码中,我使用了这样的构造函数

 new ConstraintValidatorContextImpl(
        new ArrayList<String>(),
        DefaultTimeProvider.getInstance(),
        PathImpl.createPathFromString(param),
        violation.getConstraintDescriptor());

在运行时这会导致错误

java.lang.NoSuchMethodError: org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorContextImpl.<init>(Ljava/util/List;Lorg/hibernate/validator/spi/time/TimeProvider;Lorg/hibernate/validator/internal/engine/path/PathImpl;Ljavax/validation/metadata/ConstraintDescriptor;)

我在 build.gradle 的依赖项中添加了下面的行

runtime 'org.hibernate:hibernate-validator:5.2.2.Final'

但这没有帮助。

java gradle jboss wildfly bean-validation
1个回答
0
投票

无需构造函数,ConstraintValidatorContextImpl 必须使用工厂构造。

这就是解决方案:

context.buildConstraintViolationWithTemplate("message").addPropertyNode("field")‌​.addConstraintViolation();
© www.soinside.com 2019 - 2024. All rights reserved.