我需要在应用程序启动时处理一个文件,并从给定的信息中创建一些对象,然后将它们作为bean添加到camel上下文中。例如:Mysql数据源对象
public static void load(CamelContext context) throws Exception {
JndiRegistry registry = (JndiRegistry) context.getRegistry();
PropertiesComponent pc = context.getComponent("properties", PropertiesComponent.class);
pc.setLocation("classpath:mysql.properties");
for (String mysql: pc.parseUri("{{mysqlConfigs}}").split(",")) {
String MYSQL_DB_URL = pc.parseUri("{{" + mysql + ".url}}");
String MYSQL_DB_USERNAME = pc.parseUri("{{" + mysql + ".username}}");
String MYSQL_DB_PASSWORD = pc.parseUri("{{" + mysql + ".passwd}}");
String DB_NAME = pc.parseUri("{{" + mysql + ".name}}");
MysqlDataSource mysqlDS = new MysqlDataSource();
mysqlDS.setURL(MYSQL_DB_URL);
mysqlDS.setUser(MYSQL_DB_USERNAME);
mysqlDS.setPassword(MYSQL_DB_PASSWORD);
registry.bind(DB_NAME, (DataSource) mysqlDS);
}
}
代码抛出异常
org.apache.camel.impl。propertyplaceholderdelegaterregistry不能强制转换为org.apache.camel.impl.JndiRegistry
同样的错误,如果我试图将其转换为SimpleRegistry。是否可以通过这种方式实现,或者是否应该采用其他方法来实现,因为不需要添加更多的上下文
尝试:
JndiRegistry registry = context.getRegistry(JndiRegistry.class);