Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

mapping in /etc/map for resources

Avatar

Level 2

Hi All,

Using the sling rewriter, I am able to map the /etc/designs/x and /content/dam/x resources as the internal path should not be visible to the end user when a page is rendered.

so I was getting new urls as below :

/business/global.css

/business/components.js

and more..

To resolve them internally , I used /etc/map/http and mapped /etc/designs/x for these urls.

I  am able to access /business/global.css/js but when I need to access any other resource inside /etc/designs/x , Its throwing internal error and in the error logs , is showing

0 TIMER_START{Request Processing}
      0 COMMENT timer_end format is {<elapsed msec>,<timer name>} <optional message>
      0 LOG Method=GET, PathInfo=/business/global/fonts/brand-icons.woff2
      0 TIMER_START{ResourceResolution}
      0 TIMER_END{0,ResourceResolution} URI=/business/global/fonts/brand-icons.woff2 resolves to Resource=JcrNodeResource, type=nt:file, superType=null, path=/etc/designs/ukb/global/fonts/brand-icons.woff2
      0 LOG Resource Path Info: SlingRequestPathInfo: path='/etc/designs/x/global/fonts/brand-icons.woff2', selectorString='null', extension='2', suffix='null'
      0 TIMER_START{ServletResolution}
      0 TIMER_START{resolveServlet(JcrNodeResource, type=nt:file, superType=null, path=/etc/designs/x/global/fonts/brand-icons.woff2)}
      1 TIMER_END{1,resolveServlet(JcrNodeResource, type=nt:file, superType=null, path=/etc/designs/x/global/fonts/brand-icons.woff2)} Using servlet org.apache.sling.servlets.get.DefaultGetServlet
      1 TIMER_END{1,ServletResolution} URI=/business/global/fonts/brand-icons.woff2 handled by Servlet=org.apache.sling.servlets.get.DefaultGetServlet
      1 LOG Applying Requestfilters
      1 LOG Calling filter: com.adobe.granite.requests.logging.impl.RequestLoggerImpl
      1 LOG Calling filter: com.adobe.cq.social.commons.security.SaferSlingPostServlet
      1 LOG Calling filter: org.apache.sling.bgservlets.impl.BackgroundServletStarterFilter
      1 LOG Calling filter: com.adobe.granite.httpcache.impl.InnerCacheFilter
      1 LOG Calling filter: com.day.cq.wcm.designimporter.CanvasPageDeleteRequestFilter
      1 LOG Calling filter: com.adobe.cq.history.impl.HistoryRequestFilter
      1 LOG Calling filter: com.day.cq.wcm.core.impl.WCMRequestFilter
      1 LOG Calling filter: com.adobe.granite.optout.impl.OptOutFilter
      1 LOG Calling filter: com.day.cq.theme.impl.ThemeResolverFilter
      1 LOG Calling filter: com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet
      1 LOG Calling filter: org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter
      1 LOG Calling filter: com.adobe.cq.social.commons.cors.CORSAuthenticationFilter
      1 LOG Calling filter: com.x.core.impl.filters.LoggingFilter
      1 LOG Calling filter: com.x.y.core.impl.filters.LoggingFilter
      1 LOG Calling filter: com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter
      1 LOG RedirectFilter did not redirect (request extension does not match)
      1 LOG Calling filter: com.day.cq.wcm.core.impl.warp.TimeWarpFilter
      1 LOG Calling filter: org.apache.sling.rewriter.impl.RewriterFilter
      1 LOG Calling filter: com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl
      1 LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
      1 LOG Calling filter: com.adobe.cq.dam.s7imaging.impl.auth.MemoryTokenAuthHandler
      1 LOG Calling filter: com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl
      1 LOG Applying Componentfilters
      1 LOG Calling filter: com.day.cq.wcm.core.impl.WCMComponentFilter
      1 LOG Calling filter: com.day.cq.wcm.core.impl.WCMDebugFilter
      1 LOG Calling filter: com.day.cq.personalization.impl.TargetComponentFilter
      1 TIMER_START{org.apache.sling.servlets.get.DefaultGetServlet#0}
      1 LOG No renderer for extension 2
      1 LOG Applying Error filters
      1 LOG Calling filter: org.apache.sling.rewriter.impl.RewriterFilter
      1 TIMER_START{handleError:status=404}
      1 TIMER_END{0,handleError:status=404} Using handler /libs/sling/servlet/errorhandler/404.jsp
     25 LOG Found processor for post processing ProcessorConfiguration: {contentTypes=[text/html],order=-1, active=true, valid=true, processErrorResponse=true, pipeline=(generator=Config(type=htmlparser, config={}), transformers=(Config(type=linkchecker, config={}), Config(type=mobile, config=JcrPropertyMap [node=Node[NodeDelegate{tree=/libs/cq/config/rewriter/default/transformer-mobile: { jcr:primaryType = nt:unstructured, component-optional = true}}], values={jcr:primaryType=nt:unstructured, component-optional=true}]), Config(type=mobiledebug, config=JcrPropertyMap [node=Node[NodeDelegate{tree=/libs/cq/config/rewriter/default/transformer-mobiledebug: { jcr:primaryType = nt:unstructured, component-optional = true}}], values={jcr:primaryType=nt:unstructured, component-optional=true}]), Config(type=contentsync, config=JcrPropertyMap [node=Node[NodeDelegate{tree=/libs/cq/config/rewriter/default/transformer-contentsync: { jcr:primaryType = nt:unstructured, component-optional = true}}], values={jcr:primaryType=nt:unstructured, component-optional=true}]), serializer=Config(type=htmlwriter, config={}))}
     25 TIMER_END{25,Request Processing} Dumping SlingRequestProgressTracker Entries

 

 

Is it AEM 6.0 issue , How do I resolve it so the pages render properly.

1 Accepted Solution

Avatar

Correct answer by
Level 2

From the error message you provided above, the default get servlet is rendering your font file and doesn't have a renderer for the woff2 extension. "1 LOG No renderer for extension 2".  Make sure you have a node at the location in the error message /business/global/fonts/brand-icons.woff2.  The problem appears to be that you want the extension css on the global node.  That would make /fonts/brand-icons.woff2 a suffix.  I wouldn't suggest including the .css in your mapping.

Alternatively, it looks like what you really want to do is use AEM's clientlib functionality.  Create a clientlib under the directory that's only internally accessed /business/global, create a clientlib at /etc/designs/x, and on the x clientlib use the embed property to embed the /business/global clientlib. Here are instructions http://blogs.adobe.com/experiencedelivers/experience-management/clientlibs-explained-example/

Also it looks like this message was taken from your browser and not the logs. If you look in your AEM crx-quickstart/logs folder for the error.log there should be a stacktrace error message.

View solution in original post

2 Replies

Avatar

Correct answer by
Level 2

From the error message you provided above, the default get servlet is rendering your font file and doesn't have a renderer for the woff2 extension. "1 LOG No renderer for extension 2".  Make sure you have a node at the location in the error message /business/global/fonts/brand-icons.woff2.  The problem appears to be that you want the extension css on the global node.  That would make /fonts/brand-icons.woff2 a suffix.  I wouldn't suggest including the .css in your mapping.

Alternatively, it looks like what you really want to do is use AEM's clientlib functionality.  Create a clientlib under the directory that's only internally accessed /business/global, create a clientlib at /etc/designs/x, and on the x clientlib use the embed property to embed the /business/global clientlib. Here are instructions http://blogs.adobe.com/experiencedelivers/experience-management/clientlibs-explained-example/

Also it looks like this message was taken from your browser and not the logs. If you look in your AEM crx-quickstart/logs folder for the error.log there should be a stacktrace error message.