如何在Talend外部运行Talend ESB导出的OSGi bundle jar包
非Talend环境运行导出的OSGi Bundle操作指南
前置检查
- 确认导出bundle时使用的Talend ESB版本,后续配套运行环境需要和该版本的核心依赖版本对齐,避免兼容性问题
- 打开导出jar包的
META-INF/MANIFEST.MF文件,核对Import-Package项声明的所有依赖范围没有异常
部署运行步骤
- 准备OSGi运行容器
Talend ESB底层基于Apache Karaf实现,你可以直接使用和你Talend版本匹配的Apache Karaf作为独立运行容器,解压后执行bin/karaf(Windows执行bin\karaf.bat)即可启动容器。 - 安装基础依赖
你导出的job依赖Talend预置的公共组件,直接从本地Talend ESB安装目录的container/deploy文件夹下,把所有系统预置的bundle复制到Karaf的deploy目录,Karaf会自动完成这些基础依赖的部署。 - 部署自定义bundle
把你导出的job bundle jar放到Karaf的deploy目录,等待数秒即可完成自动部署。 - 验证部署状态
在Karaf控制台执行list命令查看所有bundle状态:
- 状态显示Active代表部署成功,直接访问你之前定义的REST API地址即可验证返回结果
- 状态显示Installed或Resolved代表存在依赖缺失,执行
diag <对应bundle的ID>可以查看具体缺失的依赖项,补充安装对应bundle即可
常见问题处理
- 类NotFound报错:优先检查是否漏了
cxf、camel系列的Talend公共依赖,这些是REST类型job的核心运行组件 - 端口冲突:修改Karaf安装目录下
etc/org.ops4j.pax.web.cfg文件中的端口配置,调整为可用端口即可 - 后台运行需求:可以使用
bin/start命令启动Karaf后台进程,无需保持控制台常驻
内容的提问来源于stack exchange,提问作者d.haythem10
相关产品推荐
相关产品推荐

