Op de AEM-site wordt "Onverwachte fout" weergegeven vanwege API-problemen met JS Use

Als uw openbare AEM-site soms wordt afgesloten met een 'Onverwachte fout'-bericht, kan dit worden veroorzaakt door problemen in de API-componenten voor JavaScript-gebruik. Start de pods opnieuw om de service te herstellen en verouderde code te vervangen door Sling Models en verbeter de foutafhandeling om te voorkomen dat deze opnieuw plaatsvindt.

Beschrijving description

Omgeving

Adobe Experience Manager as a Cloud Service (AEMaaCS) - Sites

Probleem/symptomen

De openbare website ervaart intermitterende onderbreking, vaak tonend een foutenmelding en het nalaten om bepaalde pagina's te laden. De logboeken richten aan de concretiseringskwesties van het Gebruik API van JavaScript en HTTP 500 fouten.

Symptomen zijn onder meer:

  • Onverwachte fout. We proberen het online te brengen. op de betrokken pagina's.
  • De fouten van API van het Gebruik van JavaScript zoals: Identifier linkDropdownLogic.js kan niet correct door het Gebruik API worden geconcretiseerd.
  • Uitzonderingen splitsen vanwege ongeldige verwijzingen of scriptlogica.
  • Sommige pagina's kunnen niet worden geladen, andere (zoals de startpagina) worden opnieuw geladen.

Oorzaak

De stroomonderbreking werd veroorzaakt door een fout van JavaScript in een douanedossier: Herkenningsteken ____.js kan niet correct door het Gebruik API worden geconcretiseerd.

  • De code die is gebruikt voor ECMAScript-destructurering: for (const [ _, res] of items)
  • Deze syntaxis is niet compatibel met de Rhino-engine die wordt gebruikt door AEM Sightly.
  • De fout kwam voor wanneer het manuscript probeerde om onvolledige inhoudsstructuren tijdens replicatie te verwerken.

Waarom het op slechts één pod gebeurde

Hoewel alle publicatiepods dezelfde code hadden, is er slechts één code mislukt vanwege:

  1. Onvolledige replicatie van inhoud - De pod bevond zich in een tijdelijke staat met gedeeltelijk gerepliceerde inhoud.
  2. Onveilige verwerking van tussenpersonen - De JS-code kan ontbrekende of onvolledige gegevensstructuren niet verwerken.
  3. Uitputting van het middel - de foutenlijn verbruikte systeemmiddelen, die tot een neerstorting leiden.
  4. Geen automatisch herstel - De pod kan niet worden hersteld zonder handmatig opnieuw te starten vanwege aanhoudende uitputting van de bron.

Technische Insight

  • Motorbeperking: de Rhino JS-engine ondersteunt geen destructurering op Java-iterators.
  • Gedrag van code: Werkt mogelijk onder normale omstandigheden, maar mislukt bij stress of deelgegevens.
  • Effect: één pod ging een mislukkingslijn in, terwijl anderen normaal bleven lopen.

Resolutie resolution

Het JavaScript Use API-probleem oplossen:

  1. Start alle publicatiepods opnieuw om de omgeving tijdelijk te stabiliseren. Dit ontruimt HTTP 500 fouten en herstelt plaatsbeschikbaarheid.
  2. Controleer vervolgens de JavaScript-modelklassen die instantiefouten veroorzaken. Vervang verouderde JavaScript Use API-componenten door Java-based Sling Models en zorg ervoor dat alle klassen waarnaar wordt verwezen, juiste toegangsmethoden hebben.
  3. Werk de problematische code bij om het gebruik van ECMAScript-destructurering op Java-iterators te voorkomen. Gebruik in plaats daarvan standaard Java-iteratorpatronen. Null-controles en foutafhandeling toevoegen om onvolledige inhoudsstructuren veilig te beheren.
  4. Voeg blokken try/catch toe aan uw JavaScript Use API-scripts om te voorkomen dat de inhoud volledig mislukt. Componenten ontwerpen om de kwaliteit op een elegante manier te verlagen en trapsgewijze fouten te voorkomen.
  5. Tot slot herzie componentengebiedsdelen en denk na gebruikend caching reserveinhoud voor kritieke elementen zoals navigatie. Voer circuitonderbrekers voor componenten uit die op de externe diensten vertrouwen.

Gerelateerde lezing

​ Vervangen en Verwijderde Eigenschappen | Adobe Experience Manager ​

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f