AEM har en standardfelhanterare för hantering av HTTP-fel. genom att till exempel visa:
För att svara på fel finns AEM en 404.jsp
skript under /libs/sling/servlet/errorhandler
.
Eftersom AEM baseras på Apache Sling finns mer information tillgänglig i dokumentationen för felhantering i Apache.
På en författarinstans CQ WCM-felsökningsfilter är aktiverat som standard. Detta resulterar alltid i svarskoden 200. Standardfelhanteraren svarar genom att skriva den fullständiga stackspårningen till svaret.
I en publiceringsinstans är CQ WCM-felsökningsfiltret alltid inaktiverat (även om det har konfigurerats som aktiverat).
Du kan utveckla egna skript för att anpassa sidorna som visas i felhanteraren när ett fel inträffar. För att göra detta kommer du att AEM standardövertäckningsmekanism så att dina anpassade sidor skapas under /apps
och täcka över standardsidorna under /libs
.
Kopiera standardskripten i databasen:
/libs/sling/servlet/errorhandler/
/apps/sling/servlet/errorhandler/
Målsökvägen finns inte som standard, så du måste skapa den första gången.
Navigera till /apps/sling/servlet/errorhandler
. Här kan du antingen:
Spara ändringarna och testa.
The 404.jsp
Skriptet har utformats särskilt för att AEM autentiseringen. särskilt för att möjliggöra systeminloggning vid dessa fel.
Därför bör det här manuset ersättas med stor omsorg.
HTTP 500 internt serverfel indikerar ett fel på serversidan, t.ex. att servern råkade ut för ett oväntat tillstånd som gjorde att den inte kunde utföra begäran.
När bearbetningen av en begäran resulterar i ett undantag, är Apache Sling-ramverket (som AEM bygger på):
Av anpassa de sidor som visas i felhanteraren a 500.jsp
kan skapas. Det används dock bara om HttpServletResponse.sendError(500)
exekveras uttryckligen, d.v.s. från en undantagskatalog.
Annars är svarskoden inställd på 500, men 500.jsp
skriptet körs inte.
Om du vill hantera 500 fel måste filnamnet för felhanterarskriptet vara detsamma som undantagsklassen (eller superklassen). Om du vill hantera alla sådana undantag kan du skapa ett skript /apps/sling/servlet/errorhandler/Throwable.jsp
eller /apps/sling/servlet/errorhandler/Exception.jsp
.
I AEM som Cloud Service visar CDN en allmän felsida när ett 5XX-fel tas emot från serverdelen. För att det faktiska svaret från backend ska kunna gå igenom måste du lägga till följande rubrik i svaret: x-aem-error-pass: true
.
Detta fungerar bara för svar som kommer från AEM eller lagret Apache/Dispatcher. Andra oväntade fel från mellanliggande infrastrukturlager visar fortfarande den allmänna felsidan.
På en författarinstans CQ WCM-felsökningsfilter är aktiverat som standard. Detta resulterar alltid i svarskoden 200. Standardfelhanteraren svarar genom att skriva den fullständiga stackspårningen till svaret.
För en anpassad felhanterare behövs svar med koden 500, så CQ WCM Debug Filter måste inaktiveras. Detta garanterar att svarskoden 500 returneras, vilket i sin tur utlöser rätt Sling-felhanterare.
I en publiceringsinstans är CQ WCM-felsökningsfiltret alltid inaktiverat (även om det har konfigurerats som aktiverat).