您好我正在尝试在CQ5中的其他OSGI包中使用QueryBuilder服务。但queryBuilder对象返回null值。我可以得到正确消费的建议吗?
@Reference
private QueryBuilder queryBuilder;
答案 0 :(得分:1)
@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]);
}
}
并搜索您的班级并查看详细信息,它会告诉您依赖项是否得到解决以及状态服务。