我有一个动态的Web项目,我一直在使用hibernate作为jpa提供程序.直到上周,我可以使用hibernate从我的数据库中插入,更新,查询和删除.最近,我开始进行验证,并引入了许多不同的maven依赖项.在这样做的过程中,我不知何故最终使用了旧的,已弃用的javax.validation jar版本,它抛出了一个没有这样的方法异常.我在下面列出了堆栈跟踪的相关行:
Caused by: java.lang.NoSuchMethodError: javax.validation.BootstrapConfiguration.getClockProviderClassName()Ljava/lang/String;
at org.hibernate.validator.internal.xml.ValidationBootstrapParameters.<init>(ValidationBootstrapParameters.java:63)
Run Code Online (Sandbox Code Playgroud)
但是,在我的pom.xml中,我有以下依赖项(当通过javap和eclipse检查时,它在指定的类中有方法getClockProviderClassName()):
<!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.0.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我将以下排除标记放在我的pom中的多个依赖项中,以尝试确保它不会从其他来源中提取此jar:
<exclusion>
<artifactId>validation-api</artifactId>
<groupId>javax.validation</groupId>
</exclusion>
Run Code Online (Sandbox Code Playgroud)
我还简化了我的构建路径,因此它有三个元素:一个属性文件夹,只包含我的log4j配置,JRE系统库(版本1.8)和maven依赖项.有没有办法告诉被弃用的javax.validation jar来自哪里?我可以强制程序使用我带入maven的2.0.0版本吗?谢谢您的帮助.
附加信息:
完整堆栈跟踪
来自pom.xml的依赖关系
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.2.RELEASE</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.2.Final</version>
<exclusions>
<exclusion>
<artifactId>jboss-logging</artifactId>
<groupId>org.jboss.logging</groupId>
</exclusion>
<exclusion>
<artifactId>validation-api</artifactId>
<groupId>javax.validation</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId> …Run Code Online (Sandbox Code Playgroud)