最近开发了一个springboot项目,其中遇到一个问题非常头疼,但最终还是解决了,现将问题及解决方案分享如下:
项目运行环境:阿里云
问题描述:
springboot 版本:2.3.0.release
hibernate-validator版本:与springboot版本默认对应的6.1.5.Final版本
发布到dev后,没问题,但发布到sit环境后,启动报如下异常。
原因:dev环境edas中的tomcat版本为8+,SIT环境tomcat版本为7+,由于tomcat版本与hibernate-validator 6.*不兼容导致此问题,将hibernate-validator版本降到5.*后问题解除。
异常信息:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultValidator' defined in class path resource [org/springframework/boot/autoconfigure/validation/ValidationAutoConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: javax.validation.BootstrapConfiguration.getClockProviderClassName()Ljava/lang/String;
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1778)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)