我为AEM编写了一个Java调度程序。当我在system/console/bundle
的Apache Felix上传jar文件时,我的Java服务没有启动。
@Component
@Service(value = Runnable.class)
@Properties(value = { @Property(name = "scheduler.period", longValue = 1),
@Property(name = "scheduler.concurrent", boolValue = false), })
public class DisclosureLevel_Scheduler implements Runnable {
private static final Logger log = LoggerFactory.getLogger(DisclosureLevel_Scheduler.class);
@Reference
private DisclosureLevelService disclosureLevelService;
@Reference
private ResourceResolverFactory resolverFactory;
@Override
public void run() {
try {
log.info("disclosureLevelService Job Started ::: ");
} catch (Exception e) {
log.error("Exception in scedular job " + e.getMessage());
}
}
}
我的日志文件中没有打印任何内容:(
组件服务状态为unsatisfied reference
。
答案 0 :(得分:1)
组件服务状态不满意
这意味着AEM无法“注入”您在课程中定义的@Reference
中的一个或两个。如果应该注入的服务不存在,通常会发生这种情况。
查看您的参考文献,我认为DisclosureLevelService
丢失了,因为ResourceResolverFactory
由AEM(或Sling本身)提供,并且应该存在,除非您的AEM确实存在问题。
要检查您的服务是否存在,请转到Felix控制台<your-host>/system/console/services
。要检查组件是否存在,请转到Felix控制台<your-host>/system/console/components
。