La pagina del servlet personalizzato di AEM Author si blocca durante il caricamento dello spinner in Experience Cloud Shell
Scopri come risolvere il problema quando le pagine del servlet personalizzato in AEM Author rimangono bloccate in un dispositivo di rotazione di caricamento quando si accede tramite l’iframe della shell di Experience Cloud.
Descrizione description
Quando si accede a un servlet personalizzato o a una pagina HTML da AEM Author, la pagina viene caricata all’interno di un iframe della shell di Experience Cloud. In questo scenario, la pagina sembra bloccata su una sovrapposizione di caricamento spinner, anche se il contenuto HTML è presente all’interno dell’iframe. Questo problema è riproducibile per più utenti quando Unified Shell è abilitato e non sono presenti modifiche recenti al codice del servlet. Parametri URL aggiuntivi (ad esempio _mr e shell_domain) vengono aggiunti automaticamente. Quando si apre lo stesso URL servlet direttamente in una nuova scheda del browser (al di fuori del contesto di Unified Shell), la pagina viene riprodotta correttamente senza lo spinner. La disabilitazione di Unified Shell o l’accesso al servlet tramite il percorso di risorsa diretto consentono inoltre alla pagina di eseguire il rendering come previsto.
Ambiente
- Autore Adobe Experience Manager (AEM)
- Distribuzioni AEM as a Cloud Service (AEMaaCS) e on-premise
Sintomi
- La pagina del servlet personalizzato rimane nascosta dietro una sovrapposizione dello spinner di caricamento quando si accede tramite l’iframe della shell di Experience Cloud.
- Il contenuto HTML è presente nell’iframe, ma non è visibile.
- L’accesso diretto all’URL del servlet (all’esterno della shell) funziona come previsto.
Causa
Experience Cloud Unified Shell prevede un segnale “content ready” dalle pagine caricate per ignorare la sovrapposizione dello spinner. Le risposte personalizzate ai servlet che non caricano il framework standard dell’editor di AEM JavaScript non inviano questo segnale, causando la permanenza indefinita dello spinner. L’accesso diretto al servlet (all’esterno della shell) evita questo problema.
Risoluzione resolution
Per risolvere il problema, segui i passaggi seguenti:
- Accedere al servlet personalizzato tramite la route di Experience Cloud Shell, ad esempio
/ui#/aem/your/servlet/path. - Osserva se la pagina rimane bloccata sulla sovrapposizione dello spinner di caricamento, anche se il contenuto HTML è presente nell’iframe.
- Copia l’URL completo del servlet (inclusi eventuali parametri aggiunti) dalla scheda di rete del browser.
- Apri questo URL direttamente in una nuova scheda del browser (al di fuori del contesto di Unified Shell).
- Verifica che il rendering della pagina sia stato eseguito correttamente senza lo spinner.
- Aggiornare collegamenti, segnalibri o percorsi di navigazione per puntare direttamente al percorso della risorsa servlet (ad esempio:
/content/your/site/servlet.html), ignorando Unified Shell. - Se Unified Shell è necessario per altre parti dell’ambiente AEM, limita questa soluzione al solo flusso di lavoro servlet personalizzato. Assicurati che gli utenti accedano al servlet tramite un collegamento semplice o in una scheda del browser separata, non tramite la navigazione della struttura pagina/contenuto di AEM, che genera la route con wrapping della shell.
- (Facoltativo) Rivedi eventuali codici lato client nell’output del servlet che possono dipendere da
window.top,window.parento costrutti simili, in quanto possono comportarsi in modo diverso nell’iframe di Unified Shell.
Dopo aver applicato questa soluzione alternativa, gli utenti dovrebbero essere in grado di accedere alla pagina del servlet personalizzato senza incontrare la rotazione di caricamento bloccata.