【发布时间】:2015-06-26 17:34:44
【问题描述】:
我正在尝试使用 Hibernate Validator。尝试启动我的 JBoss 时,我得到以下信息:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl
我的环境是:
- JBoss 5.2
- Java 1.8
- 春季 3.2.11
这些是我必须处理的。
我首先尝试了以下 pom 条目。
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.3.1.Final</version>
</dependency>
这不起作用,给出了上述错误。所以我读到我可以只使用最新的 Hibernate Validator 5.1.3 并且不需要单独的 javax 依赖项,所以我删除了 javax 依赖项并将 pom 设置为 hibernate 验证器的 5.1.3 版本。同样的问题。
我错过了什么?我读到的一切都准确地显示了我所拥有的。我还缺少另一个依赖项吗?我已经看到有人提到 slfj,我需要这种依赖吗?如果有,是什么版本?
任何人都有适用于 4.3.1 或 5.1.3 的 pom 示例吗?
令人沮丧,看起来这应该很简单,所以可能我错过了一些非常明显的东西。
【问题讨论】:
-
显示的两个依赖项不兼容。 Hibernate Validator 4.x 需要 Bean Validation 1.0 API,而 Validator 5.x 需要 BV 1.1。您使用哪个版本,如果您使用的是 Maven 或其他一些依赖管理工具,那么只需指定要使用的 Validator 版本就足够了(Bean Validation API 将被传递添加)。你在使用 Maven 吗?如果没有并且您手动管理依赖项,那么您需要 Bean Validation API 及其参考实现 Hibernate Validator。在匹配的版本中!其实很简单。
-
我正在使用 Maven。我终于让它使用以下配置 - javax 验证版本 1.0.0.GA 和 hibernate-validator 4.0.2.GA。我按照建议尝试并放入 4.3.1 并省略了要传递添加的 javax,没有运气。我以后可能会玩这个,但 4.0.2 版本让我继续前进。