Aem 如何找出是什么导致某个URL解析为合成资源?

Aem 如何找出是什么导致某个URL解析为合成资源?,aem,jcr,sling,Aem,Jcr,Sling,在我的AdobeCQ5(CQ5.6)安装中,出于某种原因,有一个URL(http://localhost:4503/services)正在解析为合成资源: 这导致CQ显示以下页面,而不是404页面未找到页面: 导致此行为的原因是什么?您会得到禁止的错误,这不是因为/services的奇怪类型,而是因为您没有添加任何扩展名(请求/content/geometryxx时会得到相同的结果)。让我们尝试添加一些扩展:.html实际上不起作用,但是.infinity.tidy.json会带来有趣的发现

在我的AdobeCQ5(CQ5.6)安装中,出于某种原因,有一个URL(
http://localhost:4503/services
)正在解析为合成资源:

这导致CQ显示以下页面,而不是404页面未找到页面:


导致此行为的原因是什么?

您会得到
禁止的
错误,这不是因为
/services
的奇怪类型,而是因为您没有添加任何扩展名(请求
/content/geometryxx
时会得到相同的结果)。让我们尝试添加一些扩展:
.html
实际上不起作用,但是
.infinity.tidy.json
会带来有趣的发现:

{
  "tagfilter": {
    "sling:resourceType": "/services/tagfilter.servlet",
    "servletClass": "com.adobe.cq.social.commons.impl.servlets.TagFilterServlet",
    "sling:resourceSuperType": "sling/bundle/resource",
    "servletName": "com.adobe.cq.social.commons.impl.servlets.TagFilterServlet"
  },
  "tagfilter.servlet": {
    "sling:resourceType": "/services/tagfilter.servlet",
    "servletClass": "com.adobe.cq.social.commons.impl.servlets.TagFilterServlet",
    "sling:resourceSuperType": "sling/bundle/resource",
    "servletName": "com.adobe.cq.social.commons.impl.servlets.TagFilterServlet"
  },
  ...
似乎
/services
是一个虚拟(或者说,合成)路径,是servlet的父路径。事实上,您不能将servlet绑定到任何路径,最流行的选择是
/bin
前缀,但是
/services
也是可能的。您将在ApacheSlingServlet/Script解析器和错误处理程序的OSGi配置中找到所有此类路径的列表