Tag: cq5

如何以编程方式取消页面激活?

当x!=y满足时,我想取消某些页面的激活。 我试图用EventHandler做到这一点。 作者点击了sidekick activate Page ,我的EventHandler获取了一个复制事件,并测试x!=y 。 如果满足,则必须取消页面激活。 我的问题是如何取消激活页面? @Component(immediate = true, label = “TEST”) @Service @Property(name = “event.topics”, value = { ReplicationAction.EVENT_TOPIC }) public class EventHandler implements EventHandler { String feedback = “”; public void handleEvent(final Event event) { String x = “foo”; String y = “baar”; if (x != y) { canclePageActivation(); feedbackForAuthor […]

CQ5删除渲染阻止JavaScript

我正在编写此文档以删除阻塞js: 删除阻止JS 但是对于CQ5,我们包括js via: 如何修改脚本标签,如: 所以我可以删除阻止JS。

JMX:从服务器读取属性

我们使用Adobe CQ(5.5)作为CMS。 现在,我们的CQ环境包括一个作者服务器,用户可以在其中创建内容,以及2个发布服务器,用于将内容提供给互联网。 现在有一个复制代理程序将内容从作者服务器推送到两个发布服务器。 不幸的是,有些文章会阻止复制代理的队列,因此不再发布新内容。 这不是什么大问题,因为它很容易修复。 真正的问题是,在用户开始抱怨不再发布更改之前,我们不会注意到这种阻塞。 我四处搜索,发现CQ提供了一个JMX API,监控应用程序可以将其自身附加到它上面。 然后我试图找到一些允许我配置警报的开源软件,这样我们就能更快地做出反应,但我找不到一些东西。 这时我决定编写自己的Java应用程序,它只读取属性并在属性为true时发送邮件。 我想这比我想的要复杂得多。 首先,我不是Java开发人员,但由于CQ是基于Java的,所以我试试看。 我阅读了一些关于JMX和Java的文档,并且能够获得与CQ服务器的有效连接。 但这几乎是我能想到的一切。 我能够发现类com.adobe.granite.replication有一个类型agent ,它为每个复制代理存储一个id(id将是复制代理的名称,例如id=replication-publish-1 ) 。 每个复制代理都有不同的属性,但与我相关的属性是“QueueBlocked”。 这是我到目前为止的代码(它基于这个例子): public static void main(String[] args) { try { JMXServiceURL url = new JMXServiceURL(“service:jmx:rmi:///jndi/rmi://servername:9010/jmxrmi”); JMXConnector jmxc = JMXConnectorFactory.connect(url, null); ClientListener listener = new ClientListener(); MBeanServerConnection mbsc = jmxc.getMBeanServerConnection(); // This outputs the domains, one of […]

在AEM的Servlet中获取JSP输出

在CQ中,我们需要在servlet中处理jsp,然后将结果与我们从服务器获得的其他结果相结合,然后再写回浏览器。 以下代码几乎是我们需要的,除了它在处理jsp后将结果写回浏览器。 RequestDispatcher dispatcher = request.getRequestDispatcher(resource); dispatcher.forward(request, response); 我们尝试使用模拟响应如下: RequestData requestData = new RequestData(slingRequestProcessor, request, mockResponse); SlingHttpServletRequest slingRequest = requestData.getSlingRequest(); SlingHttpServletResponse slingResponse = requestData.getSlingResponse(); RequestDispatcher dispatcher = request.getRequestDispatcher(resource); dispatcher.forward(slingRequest, slingResponse); 但我们遇到问题。

将CQ5组件设置为可编辑或不可编辑

如果我想在页面A中设置可编辑的cq5组件,但在页面B中不可编辑,是否可行。 例如:在页面A,我有C组件,我们允许作者打开对话框并编辑组件。 但我们不允许作者打开对话框来编辑第B页上的组件C.我尝试研究cq:EditConfig 链接 ,但这还不足以解决我的问题。

无法在CQ中部署SlingServlet

我正在尝试在CQ中创建一个servlet来访问一些后端服务。 然后从我的页面将进行AJAX调用以从servlet获取响应。 @Component(immediate = true, metatype = false, label = “feedServlet”) @Service(Servlet.class) @Properties(value = { @org.apache.felix.scr.annotations.Property(name = “sling.servlet.methods”, value = “POST”), @org.apache.felix.scr.annotations.Property(name = “sling.servlet.resourceTypes”, value =”/bin/feedServlet/”), @org.apache.felix.scr.annotations.Property(name = “sling.servlet.selectors”, value =”POST”), @org.apache.felix.scr.annotations.Property(name = “sling.servlet.extensions”, value =”html”) }) /** * This servlet returns search results in json format. */ public class FeedServlet extends SlingAllMethodsServlet { private […]