本地windows和测试服Linux环境下工程启动没问题,正式环境启动报错信息如下:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.valueextraction.ValueExtractorManager at org.hibernate.validator.internal.engine.ValidatorFactoryImpl.(ValidatorFactoryImpl.java:140) ~[hibernate-validator-6.0.11.Final.jar:6.0.11.Final] at org.hibernate.validator.Hibernatevalidator.buildValidatorFactory(Hibernatevalidator.java:38) ~[hibernate-validator-6.0.11.Final.jar:6.0.11.Final] at org.hibernate.validator.internal.engine.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.java:364) ~[hibernate-validator-6.0.11.Final.jar:6.0.11.Final]
注意环境区别:
本地和测试服命令行启动,正式环境是用docker
1)期初怀疑是工程打包jar的问题,但是工程jar包在本地和测试服都可以正常启动,所以排除jar包问题;
2)怀疑是docker环境问题,为了确认是docker问题,
a)在正式环境下命令行启动,报一样的错误;
b)在正式环境的堡垒机上java -jar XXX.jar,发现可以正常启动;
故不能确认docker环境是否正常,但可以确认正式环境肯定有问题,便开始怀疑是jdk问题;
3)头脑风暴~~最终与大神讨论后,问题点确认是jdk版本方向;
4)在比对各环境下jdk版本: 正式环境1.8.022,其他环境均高于此版本(正式环境是提供方默认安装版本),将正式环境jdk提升至1.8.161后,命令行可正常启动,到此确认是jdk版本低导致的。
从问题的发现到解决,各个可能会出现问题的点被一一排除。
到此借用宋代诗人陆游《游山西村》名句“山重水复疑无路,柳暗花明又一村”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)