有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

为什么我的Java调度程序不能在AEM中工作?

我已经为AEM编写了一个Java调度器。当我在apachefelix中system/console/bundle上传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


共 (1) 个答案

  1. # 1 楼答案

    Component service status is unsatisfied reference

    这意味着AEM不能“注入”您在类中定义的@Reference中的一个或两个。如果应该注入的服务不存在,通常会发生这种情况

    查看您的参考资料,我认为DisclosureLevelService缺失,因为ResourceResolverFactory由AEM(或Sling)本身提供,除非您的AEM确实有问题,否则应该存在

    要检查您的服务是否存在,请转到Felix控制台<your-host>/system/console/services。要检查组件是否存在,请转到Felix控制台<your-host>/system/console/components