问题描述
我正在使用 AEM 原型编写 AEM 自定义工作流组件。一切都很好。
我可以编写使用引用注释的代码 @Reference(target = "(&(objectclass=javax.sql.DataSource)(datasource.name=MYDB))") 私有数据源 ds;
但是,我不想硬编码 MYDB。
文档让我相信我只能添加: @参考 数据源池DSP;
然后,查找数据源,但是,这不会产生任何结果。我可以遍历所有数据源名称,但没有。
是权限问题吗?
我的组件代码如下所示:
公共类 queryForData 实现 WorkflowProcess { private static final Logger log = LoggerFactory.getLogger(queryForSingleRow.class);
@Reference(target = "(&(objectclass=javax.sql.DataSource)(datasource.name=MYDB))")
private DataSource ds;
@Override
public void execute(WorkItem workItem,WorkflowSession workflowSession,MetaDataMap args) throws WorkflowException {
呸呸呸呸
解决方法
基本上,我在 configManager 中添加了 Day Commons JDBC Pool 连接配置。我缺少的是位于对话框底部的 DataSource 名称,所以我错过了它。一旦我给它一个“名字”,DS 就可以通过仅使用一个 @参考 私有数据源池DSP; 并按名称查找数据源。