Servlets CQ5 SlingServlet和ResourceType不适用于特定的资源路径
如果我定义一个Sling Servlet,如下所示:Servlets CQ5 SlingServlet和ResourceType不适用于特定的资源路径,servlets,aem,sling,Servlets,Aem,Sling,如果我定义一个Sling Servlet,如下所示: @SlingServlet( label="TestResourceTypeServlet", name = "com.company.project.servlets.TestResourceType", extensions = {"bob"}, resourceTypes= {"cq:Page"}, methods= {"GET"}, metatype=true) @Properties(
@SlingServlet(
label="TestResourceTypeServlet",
name = "com.company.project.servlets.TestResourceType",
extensions = {"bob"},
resourceTypes= {"cq:Page"},
methods= {"GET"},
metatype=true)
@Properties({
@Property(name = "service.description", value = "A test servlet"),
@Property(name = "service.vendor", value = "Company")
})
servlet将任何get请求提取到扩展名为“.bob”的每个页面,这很好,但我真正想要的是处理对特定页面类型的请求
SO
我将ResourceType修改为
resourceTypes= {"site-administration/components/page/page-distribution"},
提供的值是我试图使用.bob扩展名访问的页面的特定sling:resourceType(从CRXDE Lite中复制和粘贴),但我得到了404
我读过的所有文档都说上面的方法应该有效,但事实并非如此
出于绝望,我甚至尝试了“站点管理/组件/页面”
,这是我想要的页面的超级类型
我正在使用这个servlet运行一个干净的5.6.1实例,作为OSGi包的一部分
我是否在这里遗漏了一些明显的内容,或者如果没有,是否有人知道任何热修复程序可以解决此问题?
任何帮助都会很感激,因为我开始有点发疯了
编辑
好的,我有了进一步的了解:如果我使用以下工具访问页面:
[path-to-page]/page.bob.html
servlet启动。但是在这个URL中,bob
不是选择器吗?如果是这样的话,为什么当资源类型为cq:Page
时,配置作为扩展与bob一起工作
非常困惑
显然,我在这里遗漏了一些非常简单的内容。页面的问题是resourceType存储在cq:Page节点下面的jcr:content节点上。如果您要调用
[path to page]/\u jcr\u content.bob
,它应该可以工作。注意:\u jcr\u content
是jcr:content
的url保存版本
我说不出上一个示例实际工作的原因。页面的问题是resourceType存储在cq:Page节点下的jcr:content节点上。如果您要调用
[path to page]/\u jcr\u content.bob
,它应该可以工作。注意:\u jcr\u content
是jcr:content
的url保存版本
我说不出你的最后一个例子为什么有效。非常感谢,这很有道理,也很有效。你知道AEM6是否不同吗?当我最初的尝试失败时,我参考了这个CQ版本6页面(),它没有提到在URL中使用jcr:content。这个示例配置选择器而不是扩展,但我无法想象它会有什么不同。无论如何,再次感谢您。首先:ResourceType特定的servlet很棒,但对于内容组件而不是整个页面来说更具意义。例如,如果您对某个组件进行ajax调用以加载更多数据。第二:选择符通常用于页面,您仍然希望有一个众所周知的扩展,如html、json或xml,以便消费者知道需要什么。非常感谢,这很有意义,也很有效。你知道AEM6是否不同吗?当我最初的尝试失败时,我参考了这个CQ版本6页面(),它没有提到在URL中使用jcr:content。这个示例配置选择器而不是扩展,但我无法想象它会有什么不同。无论如何,再次感谢您。首先:ResourceType特定的servlet很棒,但对于内容组件而不是整个页面来说更具意义。例如,如果您对某个组件进行ajax调用以加载更多数据。第二:选择器通常用于页面,您仍然希望有一个众所周知的扩展,如html,json或xml,这样消费者就知道会发生什么。真奇怪-如果你能共享一个最小捆绑包的源代码,这个最小捆绑包会产生有用的问题。真奇怪-如果你能共享一个最小捆绑包的源代码,这个最小捆绑包会产生有用的问题。