自訂錯誤處理常式顯示的頁面 customizing-pages-shown-by-the-error-handler

Adobe Experience Manager (AEM)隨附處理HTTP錯誤的標準錯誤處理常式,例如,顯示:

chlimage_1-67

系統提供的指令碼存在(在/libs/sling/servlet/errorhandler下)以回應錯誤碼,依預設,標準CQ執行個體可使用下列專案:

  • 403.jsp
  • 404.jsp
NOTE
AEM是以Apache Sling為基礎。 因此,請參閱錯誤處理以取得Sling錯誤處理的詳細資訊。
NOTE
在作者執行個體上,預設會啟用CQ WCM偵錯篩選器。 這會一律產生回應代碼200。 預設錯誤處理常式會透過將完整棧疊追蹤寫入回應來回應。
在發佈執行個體上,CQ WCM偵錯篩選器是​ 一律 ​停用(即使設定為已啟用)。

如何自訂錯誤處理常式顯示的頁面 how-to-customize-pages-shown-by-the-error-handler

您可以開發自己的指令碼,以在發生錯誤時自訂錯誤處理常式顯示的頁面。 您的自訂頁面是在/apps下建立並覆蓋預設頁面(在/libs下)。

NOTE
如需詳細資訊,請參閱使用覆蓋
  1. 在存放庫中,複製預設指令碼:

    • /libs/sling/servlet/errorhandler/
    • /apps/sling/servlet/errorhandler/

    由於預設不存在目的地路徑,因此您必須在第一次執行此動作時建立該路徑。

  2. 導覽至/apps/sling/servlet/errorhandler並執行下列任一項作業:

    • 編輯適當的現有指令碼,以便提供所需的資訊。
    • 建立和編輯所需程式碼的新指令碼。
  3. 儲存變更並測試。

CAUTION
404.jsp和403.jsp處理常式已設計為符合CQ5驗證;特別是,在發生這些錯誤時允許系統登入。
因此,取代這兩個處理常式時應格外小心。

自訂HTTP 500錯誤的回應 customizing-the-response-to-http-errors

HTTP 500錯誤是由伺服器端例外狀況所造成。

當請求處理導致例外狀況時,Apache Sling架構(AEM建置在其上):

  • 記錄例外狀況

  • 傳回:

    • HTTP回應代碼500
    • 例外狀況棧疊追蹤

    在回應內文中。

透過自訂錯誤處理常式所顯示的頁面,即可建立500.jsp指令碼。 但是,只有在HttpServletResponse.sendError(500)明確執行時才使用它;也就是說,從例外狀況收集器執行。

否則,回應程式碼會設為500,但不會執行500.jsp指令碼。

若要處理500個錯誤,錯誤處理常式指令碼的檔案名稱必須與exception類別(或超級類別)相同。 若要處理所有此類例外,您可以建立指令碼/apps/sling/servlet/errorhandler/Throwable.jsp或/apps/sling/servlet/errorhandler/Exception.jsp

CAUTION
在作者執行個體上,預設會啟用CQ WCM偵錯篩選器。 這會一律產生回應代碼200。 預設錯誤處理常式會透過將完整棧疊追蹤寫入回應來回應。
自訂錯誤處理常式需要程式碼為500的回應,因此必須停用CQ WCM偵錯篩選器。 這可確保傳回回應代碼500,這隨之會觸發正確的Sling錯誤處理常式。
在發佈執行個體上,CQ WCM偵錯篩選器是​ 一律 ​停用(即使設定為已啟用)。
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2