我读过了this and this,但这并没有帮助......
我正在使用具有以下版本/依赖项的休眠验证器:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.1.FINAL</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
<version>3.0.1-b08</version>
</dependency>
我认为我做的一切都是正确的,我的日志(以 verbose:class 作为标志)告诉我:
[从加载 org.hibernate.validator.internal.engine.ConfigurationImpl
文件:.../hibernate-validator-5.4.1.Final.jar]
[从文件加载 javax.validation.Validation:.../validation-api-1.1.0.Final.jar]
但稍后在运行时,当我使用
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
我得到了经典的错误:
java.lang.NoClassDefFoundError:无法初始化类org.hibernate.validator.internal.engine.ConfigurationImpl
我还尝试降级到 hibernate-validator 4.3.1 和 javax.validation-api 1.0.0,但奇怪的是错误仍然相同。
我在这个项目中还有很多其他依赖项(例如 Spring 等),但据我所知,没有一个使用 hibernate-validator 或 javax 验证 api。 (如果是这样的话,我也会看到它们加载到日志中,不是吗?)
有什么帮助吗?
对我来说,问题是 Hibernate Validator 依赖于 jboss-logging。
jboss 日志记录不是我的类路径的一部分。
异常并没有告诉我,在尝试实例化 hibernate 配置 impl 时,类未找到 def 错误是由于类路径上缺少 jboss 日志记录所致。
一旦我将它添加到类路径中,类定义未找到错误就消失了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)