camel cdi,查找数据源由glassfish提供

时间:2014-09-09 09:51:45

标签: java glassfish apache-camel jndi cdi

我设法让骆驼使用其CDI模块,但我无法在注册表中注册数据源。我基本上有一个如下所示的SQL路由:

sql:SELECT * FROM INBOX_DFEP WHERE id > :#lastID?dataSource=jdbc/DFEP

我的应用服务器是glassfish 4,我已经注册了一个带有该名称的jdbc资源,就像我通常使用JPA一样。无论如何,骆驼似乎无法为我查找该数据源。

org.apache.camel.NoSuchBeanException: No bean could be found in the registry for: jdbc/DFEP of type: javax.sql.DataSource
我做错了什么?如何使用CDI在camel注册表中注册数据源?

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

public class DataSourceFactory {

@Resource(lookup = "jdbc/DFEP")
private javax.sql.DataSource datasource;

@Produces
@Named("queryDatasource")
public javax.sql.DataSource getDatasource() {
    return datasource;
}

}

之后你只需将你的改变改为:

sql:SELECT * FROM INBOX_DFEP WHERE id> :#lastID展现dataSource = queryDatasource