Personalización de páginas de error
- Se aplica a:
- Experience Manager as a Cloud Service
- Temas:
- Desarrollo
Creado para:
- Administrador
- Desarrollador
AEM incluye un controlador de error estándar para administrar errores HTTP; por ejemplo, mostrando:
Para responder a los errores, AEM proporciona un script 404.jsp
en /libs/sling/servlet/errorhandler
.
Personalizar páginas mostradas por el controlador de error
Puede desarrollar sus propias secuencias de comandos para personalizar las páginas que muestra el controlador de errores cuando se produce un error. Para ello, usa el mecanismo de superposición estándar de AEM para que las páginas personalizadas se creen en /apps
y se superpongan las páginas predeterminadas que se encuentran en /libs
.
-
En el repositorio, copie los scripts predeterminados:
- de
/libs/sling/servlet/errorhandler/
- hasta
/apps/sling/servlet/errorhandler/
La ruta de destino no existe de forma predeterminada, por lo que debe crearla al hacerlo por primera vez.
- de
-
Navegue hasta
/apps/sling/servlet/errorhandler
. Aquí puede hacer lo siguiente:- edite la secuencia de comandos existente adecuada para proporcionar la información necesaria. O bien
- cree y edite un nuevo script para el código requerido.
-
Guarde los cambios y pruebe.
404.jsp
se ha diseñado específicamente para permitir la autenticación de AEM; en particular, para permitir el inicio de sesión del sistema en caso de estos errores.Personalización de la Respuesta a Errores HTTP 500
El error interno del servidor HTTP 500 indica un error del lado del servidor, como que el servidor encontró una condición inesperada que le impidió cumplir la solicitud.
Cuando el procesamiento de la solicitud resulta en una excepción, el marco de Apache Sling (en el que se basa AEM):
-
Registra la excepción
-
Y vuelve en el cuerpo de la respuesta:
- El código de respuesta HTTP 500
- El seguimiento de pila de excepciones
Si personaliza las páginas mostradas por el controlador de error, se puede crear un script 500.jsp
. Sin embargo, solo se usa si HttpServletResponse.sendError(500)
se ejecuta explícitamente; es decir, desde un receptor de excepciones.
De lo contrario, el código de respuesta se establece en 500, pero no se ejecuta el script 500.jsp
.
Para controlar 500 errores, el nombre de archivo de la secuencia de comandos del controlador de errores debe ser el mismo que la clase de excepción (o superclase). Para controlar todas estas excepciones, puede crear un script /apps/sling/servlet/errorhandler/Throwable.jsp
o /apps/sling/servlet/errorhandler/Exception.jsp
.
x-aem-error-pass: true
.>Esto solo funciona para respuestas procedentes de AEM o de la capa Apache/Dispatcher. Otros errores inesperados procedentes de capas de infraestructura intermedias seguirán mostrando la página de error genérica.