我正在将一个较旧的Camel 2应用程序更新为Camel3。我遇到以下代码块的问题:
String url = "jdbc:mysql://localhost:3306/test";
DataSource dataSource = setupDataSource(url);
SimpleRegistry reg = new SimpleRegistry();
reg.put("myDataSource", dataSource);
CamelContext context = new DefaultCamelContext(reg);
特别是,SimpleRegistry的put方法期望使用Map而不是数据源:
argument mismatch; javax.activation.DataSource cannot be converted to java.util.Map<java.lang.Class<?>,java.lang.Object>)
您能推荐一个修复程序吗?我已经查看了较新的org.apache.camel.main.Main类,但是找不到从SimpleRegistry创建Camel上下文的方法。
答案 0 :(得分:2)
使用bind
方法代替put
。
请参见Apache Camel 2.x to 3.0 migration guide:
类
SimpleRegistry
从org.apache.camel.impl
移到org.apache.camel.support
。另外,您应该更喜欢使用org.apache.camel.support.DefaultRegistry
。 另外,您应该使用bind
操作而不是put
将条目添加到SimpleRegistry
或DefaultRegistry
。