flowable报错java.time.LocalDateTime cannot be cast to java.lang.String

报错信息

Caused by: java.lang.ClassCastException: java.time.LocalDateTime cannot be cast to java.lang.String

flowable报错java.time.LocalDateTime cannot be cast to java.lang.String_第1张图片

查看源码位置

flowable报错java.time.LocalDateTime cannot be cast to java.lang.String_第2张图片

代码片段如下

Object tmpDateExecuted = rs.get("DATEEXECUTED");
Date dateExecuted = null;
if (tmpDateExecuted instanceof Date) {
    dateExecuted = (Date)tmpDateExecuted;
} else {
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
        dateExecuted = df.parse((String)tmpDateExecuted);
    } catch (ParseException var24) {
    }
}

通过debug

flowable报错java.time.LocalDateTime cannot be cast to java.lang.String_第3张图片

得出结论

高版本(我这里用的8.0.30)的mysql驱动包返回的dateExecuted类型为LocalDataTime,在强转为String的时候报错

解决方法

切换版本为8.0.22

flowable报错java.time.LocalDateTime cannot be cast to java.lang.String_第4张图片

至此,启动成功

需要注意的是:8.0.22版本及以下存在这两个漏洞:

CVE-2021-2471CVE-2022-21363,自己要做好取舍

你可能感兴趣的:(flowable,java,开发语言)