首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我无法使用spring框架将Hibernate Validator集成到javaweb项目中

我无法使用spring框架将Hibernate Validator集成到javaweb项目中
EN

Stack Overflow用户
提问于 2019-06-03 11:44:37
回答 1查看 435关注 0票数 2

我试图将hibernate验证添加到我的web项目中,但是如果项目中有一个jar包:spring indexer-5.0.6.RELEASE.jar,它将导致程序在运行时抛出: java.lang。annotation.AnnotationFormatError:这个异常类的重复注释。这将阻止我将hibernate验证集成到我的web项目中。我该如何解决这个问题?

代码语言:javascript
复制
 package CarTest;

import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author 
 */
       class Car {
    @NotNull
    private String manufacturer;

    @NotNull
    @Size(min = 2, max = 14)
    private String licensePlate;

    @Min(2)
    private int seatCount;

    public Car(String manufacturer, String licencePlate, int seatCount) {
        this.manufacturer = manufacturer;
        this.licensePlate = licencePlate;
        this.seatCount = seatCount;
    }
    //getters and setters ...
}

public class CarTest {

    public static void main(String[] args) {
        // TODO code application logic here
        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
        Validator validator = factory.getValidator();
        Car car = new Car(null, "DD-AB-123", 4 );
    Set<ConstraintViolation<Car>> constraintViolations =     validator.validate(car);         
        System.out.println(constraintViolations.size());
        System.out.println("must not be null:-----"+constraintViolations.iterator().next().getMessage()); 
    }

}

如果将spring-context-indexer-5.0.6.RELEASEJAR添加到库中,则会出现以下异常。

代码语言:javascript
复制
INFO: HV000001: Hibernate Validator 6.0.16.Final
Exception in thread "main" java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.NotNull: @javax.validation.constraints.NotNull(message={javax.validation.constraints.NotNull.message}, groups=[], payload=[])
    at sun.reflect.annotation.TypeAnnotationParser.mapTypeAnnotations(TypeAnnotationParser.java:360)
    at sun.reflect.annotation.AnnotatedTypeFactory$AnnotatedTypeBaseImpl.<init>(AnnotatedTypeFactory.java:139)
    at sun.reflect.annotation.AnnotatedTypeFactory.buildAnnotatedType(AnnotatedTypeFactory.java:65)
    at sun.reflect.annotation.TypeAnnotationParser.buildAnnotatedType(TypeAnnotationParser.java:79)
    at java.lang.reflect.Field.getAnnotatedType(Field.java:1170)
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findCascadingMetaData(AnnotationMetaDataProvider.java:618)
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findPropertyMetaData(AnnotationMetaDataProvider.java:236)
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getFieldMetaData(AnnotationMetaDataProvider.java:225)
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.retrieveBeanConfiguration(AnnotationMetaDataProvider.java:133)
    at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getBeanConfiguration(AnnotationMetaDataProvider.java:124)
    at org.hibernate.validator.internal.metadata.BeanMetaDataManager.getBeanConfigurationForHierarchy(BeanMetaDataManager.java:232)
    at org.hibernate.validator.internal.metadata.BeanMetaDataManager.createBeanMetaData(BeanMetaDataManager.java:199)
    at org.hibernate.validator.internal.metadata.BeanMetaDataManager.getBeanMetaData(BeanMetaDataManager.java:166)
    at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:157)
    at CarTest.CarTest.main(CarTest.java:47)

这是我介绍的jar包。

在这里输入图像描述

这只是个小案子。由于hibernate验证是添加到我的web项目中的,这些jar包不可避免地会将together.But放在这里--我不知道如何解决这个异常,我希望每个人都能提供帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-05 13:45:02

您是在使用Eclipse,还是使用Eclipse中的JDT编译器?

因为我在处理Hibernate Validator (我是HV的项目负责人)时有一个非常类似的问题。

它不是发生在所有的测试代码库,但对一些人,它只是结束了这个错误。

当使用javac编译(例如使用Maven )时,测试会正确通过(我甚至可以从Eclipse运行一些东西,只要不是JDT编译类)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56426644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档