[英]NoClassDefFoundError while using hibernate-validator
我有一个简化的项目,在这里使用JSR 303(Bean验证)。 作为参考实现,我使用了Hibernate-validator。 在项目中,我指定了依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.1.0.Final</version>
<scope>provided</scope>
</dependency>
在4.1.0版中,一切正常。 但是当我将其更改为4.2.0时。 我在此行上收到运行时错误:
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
java.lang.ClassFormatError:类文件javax / persistence / Persistence中不是本机或抽象的方法中的缺少Code属性
...... //更多堆栈跟踪
java.lang.NoClassDefFoundError:无法初始化com.andr.myproject.services.utils.ValidationUtils类
问题在哪里?
UPD:我也使用Java-ee-5依赖性 ,而不是6。
UPD2:在JUnit测试中会发生此错误
您是否在项目中具有以下依赖项:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
</dependency>
如果是这样,则应确保将其从运行时类路径中排除,因为此JAR只能用于编译,而不能在运行时使用(它的类已修改,因此它们不包含任何方法实现)。 您可以改为使用JBoss提供的API JAR:
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-6.0</artifactId>
<version>1.0.0.Final</version>
<type>pom</type>
<scope>provided</scope>
</dependency>
可能添加Hibernate Core有所帮助,因为它在单独的JAR中引入了JPA API。 您可以在此处找到更多信息。
确保maven实际上从回购中获取jar,并使用它,并且该jar中存在提到的类。
我找到了解决方案:
我需要添加休眠核心依赖项。 没有它,就行不通。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.0.1.Final</version>
</dependency>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.