この記事では、AccessDeniedException が原因で壊れたクライアントライブラリを修正する方法について説明します。

問題点

AEM ページは、JavaScript または CSS を読み込まず、ログフアイルに次のエラーが表示されます。

22.11.2016 17:16:56.789 *ERROR* [192.150.10.207 [1479853014365] GET /content/www/en-us/homepage.html HTTP/1.1] com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl Cannot load js libraries
javax.jcr.AccessDeniedException: null
at org.apache.jackrabbit.oak.jcr.session.NodeImpl$1.perform(NodeImpl.java:177)
at org.apache.jackrabbit.oak.jcr.session.NodeImpl$1.perform(NodeImpl.java:168)
at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:208)
at org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:112)
at org.apache.jackrabbit.oak.jcr.session.NodeImpl.getParent(NodeImpl.java:168)
at com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl.loadLibrary(HtmlLibraryManagerImpl.java:1545)
at com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl.loadLibs(HtmlLibraryManagerImpl.java:1475)
at com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl.assertLoaded(HtmlLibraryManagerImpl.java:1336)
at com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl.assertResolved(HtmlLibraryManagerImpl.java:1354)
at com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl.getLibrary(HtmlLibraryManagerImpl.java:982)
at com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl.getLibrary(HtmlLibraryManagerImpl.java:967)
at com.adobe.acs.commons.rewriter.impl.VersionedClientlibsTransformerFactory.getVersionedPath(VersionedClientlibsTransformerFactory.java:201)
at com.adobe.acs.commons.rewriter.impl.VersionedClientlibsTransformerFactory.rebuildAttributes(VersionedClientlibsTransformerFactory.java:148)
at com.adobe.acs.commons.rewriter.impl.VersionedClientlibsTransformerFactory.versionClientLibs(VersionedClientlibsTransformerFactory.java:138)
at com.adobe.acs.commons.rewriter.impl.VersionedClientlibsTransformerFactory.access$200(VersionedClientlibsTransformerFactory.java:82)
at com.adobe.acs.commons.rewriter.impl.VersionedClientlibsTransformerFactory$VersionableClientlibsTransformer.startElement(VersionedClientlibsTransformerFactory.java:245)

環境

AEM 6.2 以降のバージョン

原因

clientlibs-service ユーザーは見つからないか、見つからない権限です。

解決策

AccessDeniedException を削除して問題をフィックスするには、次の手順に従います。

  1. ウェブアプリ http://host:port/crx/de/index.jsp にアクセスして、管理者としてログインしてください。

  2. 以下のフォルダーを参照し、clientlibs-service ユーザーがこれらの権限を持っていることを確認します。

    • /apps Allow jcr:read
    • /libs Allow jcr:read
    • /etc Allow jcr:read
    • /var/clientlibs Allow jcr:read, rep:write

    権限を表示するには、表示したいまたは変更したい権限のノードをブラウズします。次に、CRXDE の右下のパネルで Access Control タブをクリックします。

    CRXDE-ClientLib

    clientlibs-service ユーザー自身が見つからない場合、作動している AEM インスタンスにアクセスし、/home/users/system/clientlibs-service パスのパッケージを作成します。その後、壊れたインスタンスにそれをインストールします。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー