groovy - Magnolia 安排 Groovy 脚本

标签 groovy magnolia

在 Magnolia 上,我创建了一个 Groovy 脚本来删除未使用的用户。 当我直接从“DEV > Groovy 脚本”界面(在管理中心)运行 Groovy 脚本时,它工作得很好。

现在,我正在尝试安排该脚本的执行。 所以我配置了一个命令和一个调度程序。

命令: 调度程序>配置>命令>默认>groovyDeleteUsers 具有属性: - 类 = my.commandes.GroovyDeleteAllPublicUsersCommand

调度程序: 调度程序>配置>作业>删除UsersJob 具有属性:

  • active=true
  • 目录=默认
  • 命令=groovyDeleteUsers
  • cron=0 0 8 * * * *

以下是我的 Groovy 脚本的结构:

package my.commands;

import info.magnolia.commands.*;
import info.magnolia.context.MgnlContext;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.Session;

public class GroovyDeleteAllPublicUsersCommand extends MgnlCommand {

    public boolean execute(Context ctx) {

    ....
    }
}

问题是调度程序作业无法看到我的命令。

Magnolia Can't find command [groovyDeleteUsers] for job in catalog [{default}]

我已经尝试了 JCR 查询:“select * from nt:base where jcr:path like '%/commands/%'”(如文档中指定),结果中包含我新创建的命令。

[编辑] 问题似乎来自命令。 当我尝试使用现有类定义命令时,如 info.magnolia.commands.impl.ImportCommand该命令已由应用程序很好地注册。 但是当我尝试使用我的 my.commandes.GroovyDeleteAllPublicUsersCommand该应用程序没有注册我新创建的命令。

那么你有什么想法吗?

感谢您的帮助, 问候, 吉米

最佳答案

您的问题与设置无关,设置完全正确,只是命令位置不正确。尝试将命令定义放在模块下而不是配置下,例如将其放入 ui-admincentral/commands

编辑:显然,另一个问题是关于 groovy 命令与 java 命令的。

有关更多信息和示例:this页面应该足够了。

干杯,

关于groovy - Magnolia 安排 Groovy 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50491415/

相关文章:

java - 如何在 Gradle 中列出测试的类路径

java - eDirectory 查询返回不愿意执行 LDAPSearchException

pdfbox - 字体 ArialMT 中使用的 OpenType 布局表未在 PDFBox 中实现

java - 如何在magnolia中的jsp中迭代ContentMap

java - 如何在 Grails 上使用自签名证书创建 https 连接?

java - 使用分隔值对数组进行排序

hadoop - 从 groovy 脚本执行 Hadoop 文件系统命令时没有错误但行为奇怪

drupal - CMS - Alfresco、Magnolia、Drupal 和 Joomla 比较

java - 如何在 Magnolia Community Edition 中编辑模块的 .java 源代码?

java - 如何在 Magnolia CMS 中获取图像尺寸