Differenze nella gestione degli errori nella modalità di authoring negli ambienti AEM Sites
Se la modalità di authoring mostra errori del componente in linea in un ambiente AEM Sites ma non riesce a eseguire il rendering della pagina in un altro, controlla la configurazione WCMDeveloperModeFilter per ciascun ambiente. Questo filtro è abilitato per impostazione predefinita su ogni istanza di authoring e disabilitato per impostazione predefinita su ogni istanza di pubblicazione; le differenze tra i livelli di authoring di solito derivano dalla configurazione personalizzata, non dai valori predefiniti della piattaforma.
Descrizione description
In Adobe Experience Manager Sites, la stessa pagina può mostrare diversi comportamenti di gestione degli errori in modalità di authoring in tutti gli ambienti. In alcune istanze dell’autore, gli errori a livello di componente vengono visualizzati in linea e il resto della pagina continua a essere riprodotto. In altri casi, errori simili possono impedire il rendering o la creazione dell’intera pagina, anche se la base di codice è identica.
Ambiente
Adobe Experience Manager as a Cloud Service (tutte le versioni)
Problema/Sintomi
- In un’istanza dell’autore, gli errori dei componenti vengono visualizzati in linea e la pagina continua a essere caricata.
- In un’altra istanza di authoring, lo stesso errore sottostante causa un errore completo della pagina in modalità di authoring.
- La causa principale è spesso un riferimento mancante alla classe del componente, che genera un’eccezione in ogni ambiente, ma l’esperienza utente risultante è diversa.
Causa
Questa differenza deriva dalla configurazione di WCMDeveloperModeFilter (noto anche come filtro di debug CQ WCM). Per impostazione predefinita, AEM abilita questo filtro su ogni istanza di authoring e lo disabilita su ogni istanza di pubblicazione, indipendentemente dal livello dell’ambiente. Quando è abilitato, il filtro rileva le eccezioni dei componenti ed esegue il rendering della pagina con messaggi di errore in linea. Se è disabilitata, un’eccezione di un componente può causare il mancato funzionamento dell’intera pagina.
Se questo filtro si comporta in modo diverso tra gli ambienti di authoring di livelli diversi (ad esempio, authoring di sviluppo rispetto all’ambiente di staging o di produzione), verifica la presenza di una configurazione OSGi specifica per il livello, ad esempio una cartella config.author.stage o config.author.prod, che escluda esplicitamente il valore predefinito per tale livello. Si tratta di una personalizzazione a livello di progetto, non di un comportamento predefinito di AEM.
Risoluzione resolution
Per risolvere il problema, segui la procedura riportata di seguito.
- Controlla il comportamento predefinito di
WCMDeveloperModeFilter: è abilitato in ogni istanza di authoring, in cui rileva le eccezioni dei componenti e visualizza i messaggi di errore in linea in modo che il resto della pagina venga riprodotto, e disabilitato in ogni istanza di pubblicazione, in cui un’eccezione dei componenti può causare il mancato funzionamento dell’intera pagina. - Mantieni la modalità Sviluppatore abilitata sulle istanze di authoring in modo che gli errori dei componenti emergano e vengano corretti in anticipo, dal momento che la disattivazione può nascondere gli errori a livello di componente fino a quando il codice non raggiunge una fase successiva.
- Controllare la configurazione in modalità sviluppatore per l’ambiente in questione esaminando la configurazione OSGi per
com.day.cq.wcm.core.impl.WCMDeveloperModeFilter, in genere incom.day.cq.wcm.core.impl.WCMDeveloperModeFilter.cfg.json, inclusa qualsiasi cartella in modalità di esecuzione specifica per il livello comeconfig.author.stageoconfig.author.prod. Se la proprietàenabledè impostata sufalse, il filtro è disabilitato per tale ambito e se il file è assente oenablednon è impostato sufalse, il filtro utilizza l’impostazione predefinita di AEM. - Utilizza la scheda Errori nel pannello laterale dell’editor di AEM per visualizzare i problemi a livello di componente. Solo i membri del gruppo Administrators possono accedere alla modalità Sviluppatore.
- Come best practice, è consigliabile risolvere gli errori dei componenti in un ambiente di authoring di sviluppo o inferiore prima di promuovere il codice, in modo che gli stessi errori non vengano visualizzati in modo imprevisto in un’istanza di authoring di livello superiore.
Dopo aver apportato una modifica alla configurazione, verifica una pagina contenente un errore noto di un componente in ciascun ambiente di authoring interessato per confermare il comportamento di gestione degli errori previsto.