WSO2 Integration Studio生成Docker镜像时遇javax.inject.Named缺失错误求助
解决WSO2 Integration Studio生成Docker镜像时的javax.inject.Named类找不到错误
问题现象
通过Composite Exporter生成Docker镜像时触发内部错误,核心异常为:
java.lang.NoClassDefFoundError: javax/inject/Named Caused by: java.lang.ClassNotFoundException: javax.inject.Named cannot be found by org.wso2.integrationstudio.docker.distribution_8.1.0.202212190508
解决方案
清理IDE缓存并重启
打开WSO2 Integration Studio,依次点击Help->Clean Up...,勾选Clean up projects和Clean up workspace选项,执行清理后重启IDE,尝试重新生成镜像。手动修复插件依赖
- 找到Integration Studio安装目录下的
plugins文件夹,定位到org.wso2.integrationstudio.docker.distribution_8.1.0.202212190508.jar插件包 - 解压该jar包,编辑
META-INF/MANIFEST.MF文件,在Require-Bundle字段末尾添加:javax.inject;bundle-version="1.0.0" - 将修改后的文件重新打包为jar格式,替换原插件文件,重启IDE
- 找到Integration Studio安装目录下的
升级/降级IDE版本
该问题为8.1.0版本Integration Studio的已知依赖缺陷,可直接升级到8.2.0及以上稳定版本,或降级到8.0.0版本,这类版本已修复该依赖缺失问题。手动构建Docker镜像(替代方案)
若上述方法无效,可跳过IDE自动生成流程,手动构建:- 将集成项目导出为
.car文件 - 创建Dockerfile,基于对应版本的WSO2 MI基础镜像(如
wso2/wso2mi:4.2.0),将.car文件复制到容器内的/home/wso2carbon/wso2mi-4.2.0/repository/deployment/server/carbonapps/目录 - 执行
docker build -t <镜像名称> .命令生成镜像
- 将集成项目导出为
内容的提问来源于stack exchange,提问作者user21348790
相关产品推荐
相关产品推荐

