gpt4 book ai didi

java - Spring hibernate 验证

转载 作者:行者123 更新时间:2023-12-01 18:04:15 25 4
gpt4 key购买 nike

我正在解决与 Hibernate 验证连接的问题。我得到一个异常 org.springframework.beans.factory.BeanCreationException: 创建名为 'org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0' 的 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.AbstractMethodError: org.hibernate.validator.engine.ConfigurationImpl.getDefaultParameterNameProvider()Ljavax/validation/ParameterNameProvider;

这是我在 Controller 中的代码

@RequestMapping(value = "/student/result", method = RequestMethod.POST)
public String addStudent(@ModelAttribute("studentForm") @Valid Student student,
ModelMap model, BindingResult result) {
if (result.hasErrors()) {
return "add";
}
model.addAttribute("message", "Student added successfully");
model.addAttribute("student", student);
return "result";
}

这是我的 spring-servlet.xml 部分

<mvc:annotation-driven />
<bean class="org.springframework.context.support.ResourceBundleMessageSource"
id="messageSource">
<property name="basename" value="messages" />
</bean>

我的依赖项

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
</dependency>

<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>

我不知道我做错了什么。我是按照教程做的。

最佳答案

Hibernate validator 依赖项本身将 java 验证 API 作为传递依赖项拉取。来自文档:

“项目设置

为了在 Maven 项目中使用 Hibernate Validator,只需将以下依赖项添加到您的 pom.xml 中:

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
</dependency>

这会传递性地引入对 Bean Validation API (javax.validation:validation-api:{bv_api}) 的依赖。”

无需自己声明依赖关系。但是,您的问题似乎与 Spring 与您的 Hibernate 版本不兼容有关:

Error creating bean with name 'org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0': Invocation of init method failed; nested exception is java.lang.AbstractMethodError: org.hibernate.validator.engine.ConfigurationImpl.getDefaultParameterNameProvider()Ljavax/validation/ParameterNameProvider;

基本上,我敢打赌您使用的 Spring 版本与 Hibernate 5 根本不兼容。

另请参阅:

关于java - Spring hibernate 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38000890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com