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:

  1. 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).
  2. Möglicherweise werden Sie das richtige Startskript für die Konsole brauchen. Bearbeiten Sie dazu server/console.sh und setzen Sie REPOSITORY_HOME="$CONTEXT/crx" mit REPOSITORY_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).
  3. Geben Sie Folgendes in einem Konsolenfenster ein:
    cd crx-quickstart/server ./console.sh 
  4. Dadurch wird die CRX-Konsole gestartet. Danach geben Sie ein:
    cd jcr:system stat 
  5. 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 keine http://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 des REPOSITORY_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 
  6. 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 
  7. Dadurch wird der ungültige untergeordnete Knoteneintrag entfernt. Vergewissern Sie sich, dass sie entfernt wurde und beenden Sie dann die Konsole.
    Stat-Ausgang 
  8. 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.
  9. Starten Sie CRX.

Gilt für

CRX 1.4.x

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie