【问题标题】:camel cdi, lookup datasource provided by glassfish骆驼 cdi,glassfish 提供的查找数据源
【发布时间】:2014-09-09 09:51:44
【问题描述】:

我设法让 camel 使用它的 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 在骆驼注册表中注册数据源?

【问题讨论】:

  • glashfish 注册表是否可以使用来自客户端的 JNDI?如果在 CDI 注册表中找不到 JNDi,则可能是让 camel-cdi 回退以使用 JNDi。

标签: java glassfish apache-camel jndi cdi


【解决方案1】:

你可以试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多