Hibernate Validator 异常 HV000221 解决办法

问题

最近遇到一个问题,使用 Hibernate Validator 做参数校验时,本地环境运行无任何问题,打包上线以后报下面的异常:

1
2
3
4
5
6
7
HV000221: An error occurred while extracting values in value extractor org.hibernate.validator.internal.engine.valueextraction.MapValueExtractor.
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
...

解决方案

排查了好一阵,最后实在没有办法怀疑到了 JDK 头上,没想到真的是 JDK 的问题。
线上环境运行的 JDK 版本是 8u20,升级到 8u191 后问题解决。