日志报错:
网上说是与排序有关,排查之后发现代码中是在http请求之后,response的时候抛出的该异常,最终是对MediaType进行排序时抛出的
原因
JDK6之后比较器的排序算法更换了实现方式,新的实现在自定义比较器违背比较规则的情况下有可能会抛出异常,原来的实现忽略了这个异常
解决方案
- 在SpringBoot项目中可以在启动类中加入此代码:
System.setProperty(“java.util.Arrays.useLegacyMergeSort”, “true”); - 在JVM启动参数中添加:
-Djava.util.Arrays.useLegacyMergeSort=true
上述两种方案其实都是一样的,useLegacyMergeSort属性是用于恢复使用原来的排序规则。更好的解决方案还是检查代码进行避免