java - 为什么我的 Java 调度程序无法在 AEM 中运行?

标签 java aem

我为 AEM 编写了一个 Java 调度程序。当我在 Apache Felix 的 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());
        }
    }
}

我的日志文件中没有打印任何内容:(

组件服务状态为未满足引用

最佳答案

Component service status is unsatisfied reference

这意味着 AEM 无法“注入(inject)”您的一个或两个 @Reference你在类里面定义的。如果应该注入(inject)的服务不存在,通常会发生这种情况。

查看您的引用资料,我认为DisclosureLevelService缺失,因为 ResourceResolverFactory由 AEM(或 Sling)本身提供,并且应该在那里,除非您的 AEM 确实出现问题。

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

关于java - 为什么我的 Java 调度程序无法在 AEM 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40116721/

相关文章:

java - 如何在 GlassFish 中获取具有 JSR 196 身份验证的角色?

java - 向时钟添加时间(不起作用)-JAVA

java - 如何更改editText的背景颜色?

java - 如何运行Hbase和Hadoop mapreduce

css - CQ5 parsys 即使在预览模式下也会留下一些空间?

aem - Adobe CQ6 - 失控的 ContentFinder

java - Swing:每毫秒更新一次图形?

maven - 在同一内容包中嵌入同一 OSGI 依赖项的多个版本

shell - 无法在 Ubuntu 18.04 上将 AEM 作为服务启动

java - 如何解决 AEM6.1 中的 "org.apache.sling.servlets.post.impl.operations.ModifyOperation Unable to create resource"错误?