After several deployment to AEM instance (6.5) in error.log:
org.apache.sling.servlets.get.impl.DefaultGetServlet No renderer for extension html, cannot render resource JcrNodeResource,
Did anyone find the fix on this issue?
Related
While using Puppeteer or Chrome DevTools APIs, you can get a value for resourceType (on Request object in Puppeteer and on Page object in Chrome DevTools).
How does this value is establish by the "rendering engine" (as called in the documentation)?
Possible values being: Document, Stylesheet, Image, Media, Font, Script, TextTrack, XHR, Fetch, EventSource, WebSocket, Manifest, Other
API documentation: Puppeteer API and Chrome DevTools API
Similar question on stackoverflow: Is There any way to get all mime type by the resourceType of chrome
Finally, I found the source code that handle that in the WebKit source code used by Chromium.
First, what is called "rendering engine" in the documentation is the WebKit engine (at least the version provided with the chromium sources).
Second, there is no way to easily know how a resource will be tag for each category.
The easy part is for the categories: Document, Stylesheet, Image, Media, Font and Script. It use the mimeType and the extension provided by the path part of the URL. The mapping is detailed in this response.
For the other categories (TextTrack, XHR, Fetch, EventSource, WebSocket and Manifest), it seems that it is establish by custom logic during the processing of the given resource by WebKit.
The source code is available in the chromium repository: ./third_party/WebKit/Source/devtools/front_end/common/ResourceType.js.
My content repository over a 2 year span has accumulated many obsolete component resources. The component nodes are missing sling:resourceType property. These component nodes looks like this:
Due to such bad resources, the page is throwing below exception:
14.09.2017 12:33:21.079 *ERROR* [172.21.142.98 [1505392399461] GET /content/xx/en_ca/home.html HTTP/1.1]
org.apache.sling.servlets.get.impl.DefaultGetServlet No renderer for extension html, cannot render resource Paragraph,
path=/content/xx/en_ca/home/jcr:content/par-sidebar/contentbox_c540/rightRailContentPar/contentbox_f1fd,
type=nt:unstructured, cssClass=default, column=0/0, diffInfo=[null],
resource=[JcrNodeResource, type=nt:unstructured, superType=null,
path=/content/xx/en_ca/home/jcr:content/par-sidebar/contentbox_c540/rightRailContentPar/contentbox_f1fd]
Further digging I found someone had written a tool to cleanup such obsolete resources.
While it is easy to query and cleanup such invalid nodes, my question how did such resources end up in repository? I tried to simulate by moving components, deleting components from page but in vain. There is no custom scripting that is removing sling:resourceType. Is this issue faced only by me? Or is there any product issue/usecase that can clear the type of resource?
I am running AEM 6.0 SP2.
Seems this is a known product bug to be fixed for future AEM. This is the response I got from daycare ticket:
There are several known issues related to sling:resourceType in AEM 6.0 SP2 and later but the one that I could find nearest to the scenario you have mentioned occurs when the components are copied and pasted.
It removes/breaks the sling:resourceType property. This issue is covered under the internal id -CQ-4212306, the fix for which will be a part of the future version of AEM.
In AEM 6.3 classic UI, When i am trying to overlay
/libs/cq/security/widgets/source/widgets/security/data/AclStore.js
to
/apps/cq/security/widgets/source/widgets/security/data/AclStore.js
the following error is coming
TypeError: CQ.security.data is undefined CQ.security.data.UserAclStore
= CQ.Ext.extend(CQ.security.data.AclStore,{
Like this we are getting error for all the overlay js has issue in AEM 6.3
Correct me if I'm wrong but I don't believe the Sling Resource Resolution kicks in when resolving the contents of client libraries.
To extend the OOTB functionality, you need to:
create your own client library with a dependency to the original
be part of the appropriate category
override the functions/objects as you desire
More info: https://docs.adobe.com/docs/en/aem/6-2/develop/extending/customizing-page-authoring-touch.html
The Sling Resource Merger itself seems to be only applicable to Touch UI and I've only ever used it when making changes to the authoring UI (i.e. navigation menus)
The Sling Resource Merger and related methods can only be used with Granite. This also means that it is only appropriate for the touch-optimized UI; in particular overrides defined in this manner are only applicable for the touch-optimized dialog of a component.
source: https://docs.adobe.com/docs/en/aem/6-2/develop/platform/sling-resource-merger.html
I have resolved the issue using the below logic. Clientlibs js file creation logic is differed in AEM 6.3.
In AEM 6.1 Clientlibs js creation is binding the overlaid files from /apps/cq/security/widgets/source/widgets/js.txt and non overlaid files from /libs/cq/security/widgets/source/widgets/js.txt
In AEM 6.3 Clientlibs js creation is binding files from /apps/cq/security/widgets/source/widgets/js.txt only.
Because of this non overlaid files (CQ.security.js) are not binding into clientlibs js(widgets.js) and its gives the below error
TypeError: CQ.security.data is undefined CQ.security.data.UserAclStore
= CQ.Ext.extend(CQ.security.data.AclStore,{
So i have merged the js.txt of
/libs/cq/security/widgets/source/widgets/js.txt into
/apps/cq/security/widgets/source/widgets/js.txt and it's resolved the
issue.
Please provide your answer if there is any other way to resolve this issue.
I need to add a custom js file in my backend module of TYPO3 v7.6 extension.I added the following code in my layout
<f:be.container includeJsFiles="{0:'{f:uri.resource(path:\'Js/Main.js\')}'}">
<!------------ Contents ------------>
</f:be.container>
No error but the js file is not included in page source.Any other method is there to implement my requirement?
I would assume the path to the JS-file is wrong.
With your declaration it is expected to be EXT:your_extension/Resources/Public/Js/Main.js in your extension (as statet in the core sources).
But when in doubt I would try some other pathes. (full references)
I am using Typo3 neos version 1.0.2 Beta
When copy content element and paste it in other content area
It will not page and instead it shows error and the content element with name unstructured is created in node tree.
ExtDirect error: Uncaught exception #1301610453 (ref 20140430165908d46739) - Could not resolve a route and its corresponding URI for the given parameters. This may be due to referring to a not existing package / controller / action while building a link or URI. Refer to log and check the backtrace for more details.
PLease let me know the issue.
Thanks in advance.
There were known issues with copy/paste functionality in Neos 1.0.x.
Please use Neos 1.1 (currently 1.1.0-beta2) where this issue seems to be fixed.