Sintomi

Se l'indice di ricerca dell'area di lavoro del sistema/versione non può essere ricostruito e è presente un'eccezione nel file di log NoSuchItemStateException: deadbeef-cafe-babe-cafe-babecafebabe

Causa

Una ragione comune per il problema è una voce di nodo figlio non valida da jcr:system a crx:nodeTypes.

Analisi

Se tenti di ricreare l'indice di ricerca per l'area di lavoro del sistema/versione, e ottieni l'eccezione NoSuchItemStateException: deadbeef-cafe-babe-cafe-babecafebabe

Risoluzione

Se il problema è una voce di nodo figlio non valida da jcr:system a crx:nodeTypes, i seguenti passi risolvono il problema:

  1. Disabilita tutte le configurazioni degli indici di ricerca nei file repository.xml e workspace.xml. Disabilita anche la verifica e la correzione della consistenza per ogni area di lavoro, se abilitata (è possibile eseguirla in seguito, se necessario).
  2. Potresti dover correggere lo script di avvio della Console. Per fare questo, modifica server/console.sh e imposta sostituzione REPOSITORY_HOME="$CONTEXT/crx" con REPOSITORY_HOME="$CONTEXT/../repository" se non è ancora stato fatto. (Nota che non si può semplicemente aggiungere la riga all'inizio dello script, perché in quel momento il CONTESTO potrebbe non essere impostato, il che farebbe sì che la console utilizzi un archivio diverso).
  3. In una finestra della console, digita:
    cd crx-quickstart/server ./console.sh 
  4. Questo fa partire la console CRX. Quindi digita
    cd jcr:system stat 
  5. Ora viene stampata la lista dei nodi figlio. Esempio:
    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 

    • Se vedi solo una voce crx:nodeTypes, è un problema diverso. Se non si vede nessuna voce di http://www.day.com/crx/1.0 allora si è connessi all'archivio sbagliato (rivedere il passo #2 riguardo a come risolvere il REPOSITORY_HOME il console.sh script).
    • Se vedi due voci crx:nodeTypes, fai quanto segue per accedervi e scoprire quale non è valido
      stat a42b98a1-b4c1-4f11-8c11-734455a4f53d 
  6. Se il nodo non esiste, si ottiene un'eccezione 'Impossibile eseguire il comando'. In tal caso, rimuovere la voce del nodo figlio:
    rm -c a42b98a1-b4c1-4f11-8c11-734455a4f53d 
  7. Questo rimuove la voce del nodo figlio non valida. Verifica che sia stato rimosso e quindi chiudere la Console.
    uscita stat 
  8. Riabilita tutte le configurazioni degli indici di ricerca nei file repository.xml e workspace.xml. Si consiglia di eliminare le directory degli indici in modo che gli indici Lucene vengano ricreati all'avvio.
  9. Avvia CRX.

Si applica a

CRX 1.4.x

Questo prodotto è concesso in licenza in base alla licenza di Attribuzione-Non commerciale-Condividi allo stesso modo 3.0 Unported di Creative Commons.  I post su Twitter™ e Facebook non sono coperti dai termini di Creative Commons.

Note legali   |   Informativa sulla privacy online