QueryBuilder服务在CQ5 / AEM中返回null对象

时间:2016-09-27 02:25:00

标签: cq5 aem query-builder

您好我正在尝试在CQ5中的其他OSGI包中使用QueryBuilder服务。但queryBuilder对象返回null值。我可以得到正确消费的建议吗?

@Reference
private QueryBuilder queryBuilder;

1 个答案:

答案 0 :(得分:1)

仅当您在OSGI服务中指定时,

@Service注释才有效。你可以确认它上面有一个@Component//This is a component so it can provide or consume services @Component @Service public class SearchServiceImpl implements SearchService { /** Default log. */ protected final Logger log = LoggerFactory.getLogger(this.getClass()); private Session session; //Inject a Sling ResourceResolverFactory @Reference private ResourceResolverFactory resolverFactory; @Reference private QueryBuilder builder; //---- Rest of your code } 注释的课程吗?

@Component

请参阅实施here

此外,如果您在班级上使用/system/console/components注释,则可以转到public void Process(string data) { var assignments = new Dictionary<string, Action<Question, string>>() { { "0", (q, t) => q.Id = t }, { "1", (q, t) => q.Name = t }, // ... { "99", (q, t) => q._99 = t }, }; Question question = new Question(); string[] fields = data.Split(':'); for (int i = 0; i < fields.Length; i += 2) { assignments[fields[i]](question, fields[i + 1]); } } 并搜索您的班级并查看详细信息,它会告诉您依赖项是否得到解决以及状态服务。