問題点

AEM をアップグレードする場合、Service Pack(SP)または累積修正パック(CFP)をインストールすると、error.log には ConstraintViolationException が記録されます。

例 #1:
次の例では、エラーは、AEM 6.3 SP1 CFP2 のインストール時の /content/communities ノードに関連しています。  このノードは通常、sling: Folder ですが、エラーのある環境では、ノードは nt: folder です。

03.04.2018 16:28:09.921 *ERROR* [http-10.158.146.131:25104-2] org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage Error during install.
javax.jcr.nodetype.ConstraintViolationException: OakConstraint0001: /content/communities[[nt:folder]]: No matching definition found for child node enablement with effective type [nt:unstructured, rep:AccessControllable]

例 #2:
次の例では、類似したエラーは、AEM 6.0 から 6.3 へのアップグレードを分割しました。  /libs/settings/granite/operations/maintenance/granite_weekly のノードタイプが sling: Folder の代わりに nt: folder であったため、パッケージのインストールが失敗しました。

21.09.2017 12:03:18.132 *ERROR* [OsgiInstallerImpl] com.adobe.granite.installer.factory.packages.impl.PackageTransformer Error while processing install task of day/cq60/product:cq-platform-content:1.3.234.
org.apache.jackrabbit.vault.packaging.PackageException: javax.jcr.nodetype.ConstraintViolationException: OakConstraint0001: /libs/settings/granite/operations/maintenance/granite_weekly[[nt:folder]]: No matching definition found for child node granite_AuditLogMaintenanceTask with effective type [nt:unstructured]

環境

AEM 6.x

原因

この原因は、特定のフォルダーに異なるノードタイプを持つ AEM のレガシーバージョンです。  今後のバージョンでノードタイプが変更されると、このエラーが発生し、アップグレードおよびパッチのインストールが中断されます。

解決策

アップグレードまたは修正パックを適用する前に、以下の手順に従ってください。ユーザーがシステム上にいないことを確認します。

  1. http://aem-host:port/crx/de/index.jsp に移動し、管理者ユーザーとしてログインします。
  2. エラーを引き起こしているノードを参照します。例えば、上部のエラーで、これは /content/communities です。
  3. そのノードの名前を、例えば、/content/communities から /content/communities-old に変更します。
  4. 正しいノードタイプを持つノードを作成します。例えば、nt: folder の代わりにノードタイプ sling: Folder を持つ /content/communities
  5. すべて保存」をクリックします。
  6. 古いノードのすべてのサブツリーを、正しいノードタイプを持つより新しいものに移動します。例えば、/content/communities-old のすべてのサブノードを /content/communities に移動します。
  7. すべて保存」をクリックします。

内部向け注意

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

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