【轻分析】轻分析报错,提示 java.lang.NoClassDefFoundError: q/datasource/io/AbstractOutputStream
问题描述:
查看轻分析,报错了,提示:
Caused by: java.lang.NoClassDefFoundError: q/datasource/io/AbstractOutputStream
报错截图和日志如下:
分析解答:
EAS启动时,Spring会扫描所有的Controller,我们的Controller里面进行初始化的时候间接依赖了第三方包qing-storage.jar的类,需要同时更新轻分析补丁及公共领域BOS_PUBLIC的补丁。但因BOS_PUBLIC的补丁会被很多业务补丁依赖,所以往往会因为更新了其它领域的补丁升级了BOS_PUBLIC的qing-storage分析包,但是没有安装对应的轻分析补丁,导致出现上述报错。
为了彻底解决该问题,目前我们已经把qing-storage放到轻分析补丁PT151285(QING,发布日期:2021-06-03)中的,但是这个jar包之前因为是放在BOS_PUBLIC公共领域中的所以也放在BOS合并补丁PTM155096(发布日期:2020-12-07)中了。轻分析补丁PT151285不会依赖PTM155096,所以建议:
1、先安装PTM155096,再安装PT151285或这之后发布的轻分析补丁;
2、如果先安装了PT151285,再去安装PTM155096,PTM155096中的qing-storage较旧会覆盖轻分析的该jar包,也会出现上述截图中的报错。
解决方案:
1)安装PT151285这个补丁之后发布的新的轻分析补丁;
2)重新安装PT151285,方法:管理控制台-补丁管理页面,勾选PT151285后按F9将补丁假卸载(补丁会变成未安装状态),然后再去重新安装这个补丁。重新安装后,观察下服务端server\lib\common\trd目录下这个qing-storage.jar的时间,如果还是PTM155096补丁中这个jar包的时间(2020-4-1),那说明没有成功。可以用轻分析补丁中的jar替换服务端路径下的这个包,再重启服务。
ps:直接替换jar包的方式,可能在服务启动的时候会提示“应用环境中存在非法组件”,如下图:
可以这样处理:
1)修改 /eas/admin/config/record.properties,将其中参数isAlreadyGenerateComponentBase=true修改为isAlreadyGenerateComponentBase=false
2)运行eas\admin目录下的stopserver.cmd(stopserver.sh),再运行admin.cmd(admin.sh)重启管理控制台,按提示重新生成基准文件并对实例进行重新部署。
另,PTM补丁和轻分析补丁包中的jar包位置如下:
【轻分析】轻分析报错,提示 java.lang.NoClassDefFoundError: q/datasource/io/AbstractOutputStream
本文2024-09-22 18:11:45发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-99228.html