CQ uses Sling's ResourceResolver but this is not related to the sling:include or cq:include tag because those tags just get the ResourceResolver from the SlingHttpServletRequest object.
Regards Felix Am 05.02.2013 um 02:53 schrieb Julian Sedding: > Sling follows the principal of clear separation between public APIs > and implementation. The ResourceResolver is an interface, used to > define the API contract. This provides Sling itself with the freedom > to change or move the implementation (which is ResourceResolverImpl > btw). The implementation should normally not be of your concern, > however. If you're interested, I suggest you check out the Sling > source-code. To my knowledge, CQ also uses Sling's ResourceResolver, > but I am not familiar with the internals of the cq:include tag. > > Regards > Julian > > > On Tue, Feb 5, 2013 at 11:28 AM, Ulrich Schmidt > <ulrich-dieter.schm...@gombers.de> wrote: >> Oh sh.. - I should have thought of this myself. Thank you, that was it. >> >> But there is still the question left about behaviour of the >> ResourceResolver. I >> think I should understand who is implementing this interface - Sling? CQ5? >> >> brgds, >> Ulrich >> >> >> >> >> Julian Sedding <jsedd...@gmail.com> hat am 5. Februar 2013 um 09:28 >> geschrieben: >>> Hi Ulrich >>> >>> Looking at the "Recent Requests" trace you provided, I would suspect >>> that your topnav.jsp has an include on itself. This results in endless >>> recursion, which is evident by the error you get. I would expect the >>> error message to be a RecursionTooDeepException, indicating that the >>> nesting of your scripts is suspiciously deep. >>> >>> Hope this helps. >>> >>> Regards >>> Julian >>> >>> >>> On Mon, Feb 4, 2013 at 4:50 PM, Ulrich Schmidt >>> <ulrich-dieter.schm...@gombers.de> wrote: >>>> Right now I'm dealing with this problem: The node: >>>> "/apps/mywebsite/components/content/body.jsp" references another jsp >>>> located >>>> at >>>> "/apps/mywebsite/components/topnav/topnav.jsp" by the expression: >>>> "< cq:include path = "topnav" resourceType = "mywebsite/components/topnav" >>>> />" >>>> within body.jsp. >>>> >>>> When rendering the webpage I get an error because by resolving the path >>>> mywebsite/components/topnav the string "topnav" is iteratively added to the >>>> ResourcePath. So it looks like: >>>> /content/mywebsite/en/products/jcr:content/topnav/topnav/topnav.... >>>> >>>> The error at the browser looks like this: >>>> Page = /content/mywebsite/en/products >>>> ResourcePath = >>>> /content/mywebsite/en/products/jcr:content/topnav/topnav/topnav.... >>>> Cell = topnav >>>> CellSearchPath = contentpage | page/topnav/topnav/topnav..... >>>> ComponentPath = /apps/mywebsite/en/components/topnav >>>> >>>> I made a mistake somewhere but I don't know where. I can delete what I did >>>> and >>>> try again - this will most probably solve the error. The samle did already >>>> run, >>>> I started over again for training purposes. But it would be better for me >>>> to >>>> find the cause to get a feeling for what might go wrong and how to debug >>>> it. >>>> I can try to lookup any definition I made so far, but I would rather prefer >>>> to >>>> get some knowledge about the debugging possibilities right now available. I >>>> know >>>> the "Recent Requests"-Trace already. I found the iteration (adding "topnav" >>>> to >>>> the resource path in a loop), but from this I can'T estimate for the >>>> reason. >>>> And this is what I would like to ask for here. What can I do to understand >>>> where >>>> this behaviour might comes from. >>>> >>>> best Regards, >>>> Ulrich >>>> >>>> >>>> Snippet from the "Recent Requests"-Trace: >>>> >>>> -02-04 16:07:55) LOG Including script body.jsp for >>>> path=/content/mywebsite/en/products/jcr:content, >>>> type=mywebsite/components/contentpage: >>>> /apps/mywebsite/components/contentpage/body.jsp >>>> 31 (2013-02-04 16:07:55) >>>> TIMER_START{/apps/mywebsite/components/contentpage/body.jsp} >>>> 31 (2013-02-04 16:07:55) LOG Including resource SyntheticResource, >>>> type=mywebsite/components/topnav, >>>> path=/content/mywebsite/en/products/jcr:content/topnav >>>> (SlingRequestPathInfo: >>>> path='/content/mywebsite/en/products/jcr:content/topnav', >>>> selectorString='null', >>>> extension='html', suffix='null') >>>> 31 (2013-02-04 16:07:55) TIMER_START{resolveServlet(SyntheticResource, >>>> type=mywebsite/components/topnav, >>>> path=/content/mywebsite/en/products/jcr:content/topnav)} >>>> 31 (2013-02-04 16:07:55) TIMER_END{0,resolveServlet(SyntheticResource, >>>> type=mywebsite/components/topnav, >>>> path=/content/mywebsite/en/products/jcr:content/topnav)} Using servlet >>>> /apps/mywebsite/components/topnav/topnav.jsp >>>> 31 (2013-02-04 16:07:55) LOG Applying Includefilters >>>> 31 (2013-02-04 16:07:55) LOG Calling filter: >>>> com.day.cq.wcm.core.impl.WCMComponentFilter >>>> 31 (2013-02-04 16:07:55) LOG Calling filter: >>>> com.day.cq.wcm.core.impl.WCMDebugFilter >>>> 31 (2013-02-04 16:07:55) >>>> TIMER_START{/apps/mywebsite/components/topnav/topnav.jsp#2} >>>> 31 (2013-02-04 16:07:55) LOG Including resource SyntheticResource, >>>> type=mywebsite/components/topnav, >>>> path=/content/mywebsite/en/products/jcr:content/topnav/topnav >>>> (SlingRequestPathInfo: >>>> path='/content/mywebsite/en/products/jcr:content/topnav/topnav', >>>> selectorString='null', extension='html', suffix='null') >>>> 31 (2013-02-04 16:07:55) TIMER_START{resolveServlet(SyntheticResource, >>>> type=mywebsite/components/topnav, >>>> path=/content/mywebsite/en/products/jcr:content/topnav/topnav)} >>>> 31 (2013-02-04 16:07:55) TIMER_END{0,resolveServlet(SyntheticResource, >>>> type=mywebsite/components/topnav, >>>> path=/content/mywebsite/en/products/jcr:content/topnav/topnav)} Using >>>> servlet >>>> /apps/mywebsite/components/topnav/topnav.jsp >>>> 31 (2013-02-04 16:07:55) LOG Applying Includefilters >>>> 31 (2013-02-04 16:07:55) LOG Calling filter: >>>> com.day.cq.wcm.core.impl.WCMComponentFilter >>>> 31 (2013-02-04 16:07:55) LOG Calling filter: >>>> com.day.cq.wcm.core.impl.WCMDebugFilter >>>> 31 (2013-02-04 16:07:55) >>>> TIMER_START{/apps/mywebsite/components/topnav/topnav.jsp#3} >>>> 31 (2013-02-04 16:07:55) LOG Including resource SyntheticResource, >>>> type=mywebsite/components/topnav, >>>> path=/content/mywebsite/en/products/jcr:content/topnav/topnav/topnav >>>> (SlingRequestPathInfo: >>>> path='/content/mywebsite/en/products/jcr:content/topnav/topnav/topnav', >>>> selectorString='null', extension='html', suffix='null') >>>> 31 (2013-02-04 16:07:55) TIMER_START{resolveServlet(SyntheticResource, >>>> type=mywebsite/components/topnav, >>>> path=/content/mywebsite/en/products/jcr:content/topnav/topnav/topnav)} >>>> 31 (2013-02-04 16:07:55) TIMER_END{0,resolveServlet(SyntheticResource, >>>> type=mywebsite/components/topnav, >>>> path=/content/mywebsite/en/products/jcr:content/topnav/topnav/topnav)} >>>> Using >>>> servlet /apps/mywebsite/components/topnav/topnav.jsp >>>> 31 (2013-02-04 16:07:55) LOG Applying Includefilters >>>> 31 (2013-02-04 16:07:55) LOG Calling filter: >>>> com.day.cq.wcm.core.impl.WCMComponentFilter >>>> 31 (2013-02-04 16:07:55) LOG Calling filter: >>>> com.day.cq.wcm.core.impl.WCMDebugFilter >>>> 31 (2013-02-04 16:07:55) >>>> TIMER_START{/apps/mywebsite/components/topnav/topnav.jsp#4} >>>> 31 (2013-02-04 16:07:55) LOG Including resource SyntheticResource, >>>> type=mywebsite/components/topnav, >>>> path=/content/mywebsite/en/products/jcr:content/topnav/topnav/topnav/topnav >>>> (SlingRequestPathInfo: >>>> path='/content/mywebsite/en/products/jcr:content/topnav/topnav/topnav/topnav', >>>> selectorString='null', extension='html', suffix='null') >>>> 31 (2013-02-04 16:07:55) TIMER_START{resolveServlet(SyntheticResource, >>>> type=mywebsite/components/topnav, >>>> path=/content/mywebsite/en/products/jcr:content/topnav/topnav/topnav/topnav)} >>>> 31 (2013-02-04 16:07:55) TIMER_END{0,resolveServlet(SyntheticResource, >>>> type=mywebsite/components/topnav, >>>> path=/content/mywebsite/en/products/jcr:content/topnav/topnav/topnav/topnav)} >>>> Using servlet /apps/mywebsite/components/topnav/topnav.jsp >>>> 31 (2013-02-04 16:07:55) LOG Applying Includefilters