scr*_*010 0 servlets sling aem
如果我按如下方式定义Sling Servlet:
@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")
})
Run Code Online (Sandbox Code Playgroud)
servlet向每个扩展名为".bob"的页面提取任何get请求,这很好,但我真正想要的是处理对特定页面类型的请求,
所以
我修改resourceTypes来读取
resourceTypes= {"site-administration/components/page/page-distribution"},
Run Code Online (Sandbox Code Playgroud)
提供的值是我尝试使用.bob扩展名访问的页面的特定sling:resourceType(复制并粘贴出CRXDE Lite),但我得到了404!
我读过的所有文档都说上面应该有用,但事实并非如此.
出于绝望,我甚至尝试过"site-administration/components/page"哪种是我想要的页面的超级类型.
我正在使用这个servlet作为OSGi包的一部分运行一个干净的5.6.1实例.
我是否遗漏了一些明显的东西,或者如果没有,是否有人知道任何可以解决此问题的热修复?
任何帮助都会受到赞赏,因为我开始有点疯狂.
编辑
好的,所以我进一步了解:如果我访问该页面:
[path-to-page]/page.bob.html
Run Code Online (Sandbox Code Playgroud)
servlet会触发.但是这个URL bob不是选择器吗?如果是这样,为什么资源类型是什么cq:Page配置使用bob作为扩展?
非常困惑:-S
我显然在这里遗漏了一些非常简单的东西.
页面的问题是resourceType存储在cq:Page节点下面的jcr:content节点上.如果你打电话[path-to-page]/_jcr_content.bob它应该工作.注意:_jcr_content是一个url保存版本jcr:content.
为什么你的最后一个例子实际上是有效的,我无法分辨.
| 归档时间: |
|
| 查看次数: |
1263 次 |
| 最近记录: |