javax.validation.ValidationException:无法找到默认提供程序 - 10

时间:2015-05-05 12:20:25

标签: java bean-validation hibernate-validator

我在stackoverflow上发现了许多类似的问题,但答案并没有帮助我。我在我的Rest api项目中使用JSR-303 Bean验证来为现有的bean类提供验证。我添加了所有依赖项,但是我收到了这个错误。

javax.validation.ValidationException: Unable to find a default provider
    at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:264)[272:wrap_mvn_javax.validation_validation-api_1.0.0.GA:0]
    at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111)[272:wrap_mvn_javax.validation_validation-api_1.0.0.GA:0]
    at com.uk.aviva.integration.LookupUkAddress.ValidateAddress.validateRequest(ValidateAddress.java:27)[277:ukAddress:0.0.8.SNAPSHOT]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_11]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_11]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_11]
    at java.lang.reflect.Method.invoke(Method.java:601)[:1.7.0_11]
    at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:407)[144:org.apache.camel.camel-core:2.12.0.redhat-611412]
    at org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:278)[144:org.apache.camel.camel-core:2.12.0.redhat-611412]
    at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:251)[144:org.apache.camel.camel-core:2.12.0.redhat-611412]
    at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:166)[144:org.apache.camel.camel-core:2.12.0.redhat-611412]
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[144:org.apache.camel.camel-core:2.12.0.redhat-611412]
    at org.apache.camel.processor.interceptor.HandleFaultInterceptor.process(HandleFaultInterceptor.java:41)[144:org.apache.camel.camel-core:2.12.0.redhat-611412]
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)[144:org.apache.camel.camel-core:2.12.0.redhat-611412]
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[144:org.apache.camel.camel-core:2.12.0.redhat-611412]
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[144:org.apache.camel.camel-core:2.12.0.redhat-611412]
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)[144:org.apache.camel.camel-core:2.12.0.redhat-611412]
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[144:org.apache.camel.camel-core:2.12.0.redhat-611412]

我看到很多人面临同样的问题,但是给出的解决方案是在类路径中添加hibernate-validator 4.0或更高版本。但我已经在使用hibernate-validator版本5.0.1.FINAL。这是我的pom条目

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.0.1.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator-annotation-processor</artifactId>
        <version>5.0.1.Final</version>
    </dependency>

    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.0.0.GA</version>
    </dependency>

有没有我错过的东西?

1 个答案:

答案 0 :(得分:0)

所以我找到了避免错误的方法,并且它有效。为了避免它,请使用带有javax.validation版本1.1.0.FINAL的hibernate-validator依赖版本4.2.1.FINAL。并将这两个添加到您的类路径中。这解决了我的错误。

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>4.2.0.FINAL</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator-annotation-processor</artifactId>
        <version>4.2.0.FINAL</version>
    </dependency>

    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.1.0.Final</version>
    </dependency>