Symptome
Wenn der Suchindex des System-/Versions-Workspace nicht neu aufgebaut werden kann und eine Ausnahme in der Protokolldatei NoSuchItemStateException: deadbeef-cafe-babe-cafe-cafe-babecafebabe
vorhanden ist.
Ursache
Ein häufiger Grund für das Problem ist ein ungültiger Kindknoteneintrag von jcr:system nach crx:nodeTypes.
Analyse
Wenn Sie versuchen, den Suchindex für den System-/Versionsarbeitsbereich neu zu erstellen, und Sie erhalten den Ausnahmefehler NoSuchItemStateException: deadbeef-cafe-babe-cafe-cafe-babecafebabe
Lösung
Wenn Ihr Problem ein ungültiger Kindknoteneintrag von jcr:system nach crx:nodeTypes ist, werden die folgenden Schritte das Problem beheben:
- Deaktivieren Sie alle Suchindexkonfigurationen in den Dateien repository.xml und workspace.xml. Deaktivieren Sie auch die Konsistenzprüfung und die Konsistenzfixierung für jeden Arbeitsbereich, falls aktiviert (Sie können diese bei Bedarf später ausführen).
- Möglicherweise werden Sie das richtige Startskript für die Konsole brauchen. Bearbeiten Sie dazu
server/console.sh
und setzen SieREPOSITORY_HOME="$CONTEXT/crx"
mitREPOSITORY_HOME="$CONTEXT/../repository"
ersetzen falls dies noch nicht geschehen ist. (Bitte beachten Sie, dass Sie nicht einfach die Zeile am Anfang des Skripts hinzufügen können, da zu diesem Zeitpunkt der INHALT möglicherweise nicht gesetzt ist, was dazu führen würde, dass die Konsole ein anderes Projektarchiv verwendet). - Geben Sie Folgendes in einem Konsolenfenster ein:
cd crx-quickstart/server ./console.sh
- Dadurch wird die CRX-Konsole gestartet. Danach geben Sie ein:
cd jcr:system stat
- Jetzt wird die Liste der untergeordneten Knoten gedruckt. Beispiel:
ChildNode Entries: + {http://www.jcp.org/jcr/1.0}versionStorage[1] -> deadbeef-face-babe-cafe-babecafebabe + {http://www.jcp.org/jcr/1.0}nodeTypes[1] -> deadbeef-cafe-cafe-cafe-babecafebabe + {internal}accessControl[1] -> 2cccff3f-c6fe-4294-a030-7c830c6c36ef + {http://www.day.com/crx/1.0}nodeTypes[1] -> c67e22c1-2eee-4e48-9505-f00bcf590a36 + {http://www.day.com/crx/1.0}nodeTypes[2] -> e4469e5a-4892-4760-acd6-3a3e8f120d4e
- Wenn Sie nur einen
crx:nodeTypes
-Eintrag sehen, ist das ein anderes Problem. Wenn Sie keinehttp://www.day.com/crx/1.0
Einträge sehen, sind Sie mit dem falschen Repository verbunden (überprüfen Sie Schritt 2 bezüglich der Korrektur desREPOSITORY_HOME
console.sh-Skript.) - Wenn Ihnen zwei
crx:nodeTypes
-Einträge angezeigt werden, dann gehen Sie folgendermaßen vor, um auf sie zuzugreifen, um herauszufinden, welcher ungültig ist:stat a42b98a1-b4c1-4f11-8c11-734455a4f53d
- Wenn Sie nur einen
- Wenn der Knoten nicht existiert, erhalten Sie die Ausnahme „Befehl kann nicht ausgeführt werden“. Entfernen Sie in diesem Fall den Eintrag für den untergeordneten Knoten:
rm -c a42b98a1-b4c1-4f11-8c11-734455a4f53d
- Dadurch wird der ungültige untergeordnete Knoteneintrag entfernt. Vergewissern Sie sich, dass sie entfernt wurde und beenden Sie dann die Konsole.
Stat-Ausgang
- Aktivieren Sie alle Suchindexkonfigurationen in den Dateien repository.xml und workspace.xml erneut. Sie können die Indexverzeichnisse löschen, damit die Lucene Indizes beim Start neu erstellt werden.
- Starten Sie CRX.
Gilt für
CRX 1.4.x