Adobe CQ/AEM-Groovy激活页面
我对Groovy很陌生。使用Groovy,我试图确定页面的激活状态,并激活/停用页面。这是我代码的核心元素,它引发了一个异常Adobe CQ/AEM-Groovy激活页面,aem,Aem,我对Groovy很陌生。使用Groovy,我试图确定页面的激活状态,并激活/停用页面。这是我代码的核心元素,它引发了一个异常 import com.day.cq.replication.Replicator; import javax.jcr.Session; Session session = slingRequest.getResourceResolver().adaptTo(Session.class); path='/content/geometrixx/en/'; def get
import com.day.cq.replication.Replicator;
import javax.jcr.Session;
Session session = slingRequest.getResourceResolver().adaptTo(Session.class);
path='/content/geometrixx/en/';
def getStats = getReplicationStatus(session, path);
def rp = replicate(session, "ACTIVATE", path);
下面是它抛出的异常:
groovy.lang.MissingMethodException: No signature of method: Script1.getReplicationStatus() is applicable for argument types: ($Proxy10, java.lang.String) values: [session-admin-977089, /content/geometrixx/en/]
at Script1.run(Script1.groovy:9)
我试过一些方法,但似乎不起作用。复制返回void,但这似乎没有改变任何东西。声明Replicator的功能似乎不起作用。就好像找不到进口一样
我们将不胜感激 您提供的代码中有几个问题:
要使用replicate()您需要获取com.day.cq.replication.Replicator对象
def replicator=sling.getService(replicator.class)
需要提供复制ActionType.ACTIVATE对象而不是“ACTIVATE”字符串
public abstract void replicate(会话参数会话,复制动作类型参数复制动作类型,字符串参数字符串)
import com.day.cq.replication.Replicator;
导入com.day.cq.replication.ReplicationActionType
导入javax.jcr.Session;
def replicator=sling.getService(replicator.class)
def path='/content/geometricxx/en/';
def rp=replicator.replicate(会话,ReplicationActionType.ACTIVATE,路径);
Groovy控制台提供了一些扩展方法。
其中一项是:
激活(字符串路径)-在给定路径激活节点
激活(字符串路径、复制选项)使用提供的选项激活给定路径上的节点
停用(字符串路径)-停用给定路径上的节点
停用(字符串路径、复制选项)使用提供的选项停用给定路径上的节点
因此,您的脚本应该如下所示:
activate('/content/geometrixx/en/')
Groovy控制台页面上的方法选项卡(/etc/groovyconsole.html)中提供了方法的完整列表。我对Groovy一无所知。然而,看到您的代码时,您并没有对replicator对象调用getReplicationStatus方法,因此它试图在类/文件本身中找到它。您可以通过sling.getService()获取复制器,在此基础上可以调用getReplicationStatus方法。
activate('/content/geometrixx/en/')