最終更新日 :
2021年4月27日
問題点
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 のレガシーバージョンです。 今後のバージョンでノードタイプが変更されると、このエラーが発生し、アップグレードおよびパッチのインストールが中断されます。
解決策
アップグレードまたは修正パックを適用する前に、以下の手順に従ってください。ユーザーがシステム上にいないことを確認します。
- http://aem-host:port/crx/de/index.jsp に移動し、管理者ユーザーとしてログインします。
- エラーを引き起こしているノードを参照します。例えば、上部のエラーで、これは /content/communities です。
- そのノードの名前を、例えば、/content/communities から /content/communities-old に変更します。
- 正しいノードタイプを持つノードを作成します。例えば、nt: folder の代わりにノードタイプ sling: Folder を持つ /content/communities。
- 「すべて保存」をクリックします。
- 古いノードのすべてのサブツリーを、正しいノードタイプを持つより新しいものに移動します。例えば、/content/communities-old のすべてのサブノードを /content/communities に移動します。
- 「すべて保存」をクリックします。