在一台电脑运行好好的,但是到另一台电脑上运行,一直报错Error creating bean 'org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0'
搜半天资料,可能是版本导致的问题。
把问题机器的spring版本从4.1改为3.1,运行正常。问题机使用的myeclipse 2016+spring4.1,正常机器是eclipse10+spring3.1
另外,项目引用了validation、hibernate-validator的包,也可能是spring的版本与这几个包的版本不匹配造成。
<body>
<sf:form modelAttribute="user" method="POST">
username:<sf:input path="username" /><sf:errors path="username" /> <br>
userpass:<sf:input path="userpass" /><sf:errors path="userpass" /> <br>
nickname:<sf:input path="nickname" /><br>
email:<sf:input path="email" /><sf:errors path="email" /><br>
<input type="submit" value="保存用户" />
</sf:form>
</body>
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;
public class User {
@NotEmpty(message="用户名不能为空")
private String username;
@Length(min=6,message="密码不低于6位")
private String userpass;
private String nickname;
@Email(message="邮箱格式不正确")
private String email;
@RequestMapping(value="/add",method=RequestMethod.POST)
public String add(@Validated User user,BindingResult br,Model model){
//System.out.println("xxxxxxxxxxxxxxxxxx........................"+user.getUsername() +"," +user.getNickname());
log.info("user add:"+user.getUsername() +"," +user.getNickname());
if(br.hasErrors()){
return "user/add";
}
users.put(user.getUsername(),user);
model.addAttribute("user",user);
return "redirect:list"; //演示1:客户端跳转,add 与list action同级。
}
附:另一个解决方案,没用maven,所以没试。
Error creating bean 'org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0'
2017年04月01日 10:50:45 淡然游江湖 阅读数:7755
SPRING版本:4.3.4.RELEASE
SpringMvc版本:4.3.4.RELEASE
Dubbo版本:2.8.4
增加mvc注解<mvc:annotation-driven />直接报错
-
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0': Invocation of init method failed; nested exception is java.lang.AbstractMethodError: org.apache.bval.jsr303.ConfigurationImpl.getDefaultParameterNameProvider()Ljavax/validation/ParameterNameProvider;
-
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1583)
-
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
-
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
-
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)