开启redis分布式锁 docker方式启动报错

Blade 未结 3 2387
xiaowuyan
xiaowuyan 2020-11-12 20:18

一、该问题的重现步骤是什么?

1. 打包bladex-boot版本为docker镜像,Dockerfile文件为RELEASE压缩包内原始Dockerfile,项目代码未经过任何修改。

2.开启分布式 redis 锁,出现下图(第四点中的图片)中的错误,关闭分布式锁不会出现问题


二、你期待的结果是什么?实际看到的又是什么?

期待的结果:开启分布式 redis锁项目正常运行       

实际看到:项目启动报错 主要原因大致是

Caused by: java.lang.VerifyError: JVMCFRE090 new bytecode cannot create arrays; class=sun/reflect/GeneratedSerializationConstructorAccessor55, method=newInstance([Ljava/lang/Object;)Ljava/lang/Object;, pc=0

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex-boot; 2.7.0.RELEASE (2.6.0.RELEASE上发现此问题,测试2.7.0.RELEASE依然存在此问题); window 10、ubuntu 20.04 均存在此问题

四、请提供详细的错误堆栈信息,这很重要。

2020-11-12 20-13-37屏幕截图.png


2020-11-12 20-14-16屏幕截图.png

五、若有更多详细信息,请在下面提供。

3条回答
  •  jkme1987
    jkme1987 (楼主)
    2020-12-11 16:51

    问题已解决

    如果dockerfile中的使用的是FROM adoptopenjdk/openjdk8-openj9:alpine-slim,对应的jdk版本为jdk8u275-b01_openj9-0.23.0,此版本针对本项目中的redisLockClient的初始化会报错,问题就是版主发的这个问题。

    解决方法:

    dockerfile打包时指定jdk版本,如下:

    FROM adoptopenjdk/openjdk8-openj9:jdk8u265-b01_openj9-0.21.0-alpine-slim

    即可解决。


提交回复