Camel 3.20.5独立Java程序中DataSource绑定错误求助
解决Camel 3.20.5中SQL组件引用SimpleRegistry内数据源的绑定错误
核心问题
你创建了SimpleRegistry并绑定了数据源,但未将该注册表关联到CamelContext实例,导致Camel无法定位到名为ds的数据源Bean,从而触发绑定错误。
修复代码
将SimpleRegistry关联到DefaultCamelContext,修改main方法如下:
// 初始化数据源 DataSource ds = setupDataSource(); // 创建注册表并绑定数据源 SimpleRegistry reg = new SimpleRegistry(); reg.bind("ds", ds); // 关键:使用带Registry参数的构造器创建CamelContext CamelContext camelContext = new DefaultCamelContext(reg);
或者如果已提前创建CamelContext,可在启动上下文前调用setRegistry方法:
CamelContext camelContext = new DefaultCamelContext(); DataSource ds = setupDataSource(); SimpleRegistry reg = new SimpleRegistry(); reg.bind("ds", ds); // 关联注册表 camelContext.setRegistry(reg);
额外检查项
- 确保
commons-dbcp2依赖已正确引入(BasicDataSource属于该依赖) - 确认Oracle JDBC驱动依赖存在,驱动类名可使用
oracle.jdbc.OracleDriver(Oracle 12+推荐)或你当前使用的oracle.jdbc.driver.OracleDriver - 单独测试数据源的URL、用户名密码是否能正常建立JDBC连接,排除数据库端问题
内容的提问来源于stack exchange,提问作者OldProgrammer
相关产品推荐
相关产品推荐

