No se puede acceder a algunas páginas en Adobe Experience Manager
No se puede acceder a algunas páginas y el siguiente error aparece en los registros:
Solicitud errónea servletengine. com.day.j2ee.servletengine.BadRequestException: la línea de petición supera los 8192 bytes
Soluciones
Si el encabezado del mensaje de los mensajes HTTP a un servidor AEM es rutinariamente demasiado grande, hay un par de cosas que se pueden hacer para resolver el problema.
Puede aumentar el tamaño de la memoria intermedia del encabezado en AEM/CQ.
Para aumentar el tamaño del búfer de encabezado en CQ 5.5, obtenga el paquete de funciones NPR-2324 de Adobe. Este paquete de características añade un campo de tamaño de búfer de cabecera a la configuración del servicio HTTP Day CQSE OSGi. El campo a cambiar es Tamaño de solicitud de búfer (org.apache.felix.http.cqse.requestBufferSize).
En AEM 5.6, el paquete de características no es necesario. La misma configuración que el paquete de características para CQ 5.5 ya está disponible.
El servidor ha sido cambiado por AEM 6+. La configuración para cambiar está dentro de la configuración del servicio Http basado en Apache Felix Jetty. Los campos a cambiar son Solicitud de tamaño de búfer y Tamaño del búfer de respuesta (org.apache.felix.http.jetty.requestBufferSize y org.apache.felix.http.jetty.responseBufferSize).
Si la instancia AEM se está ejecutando dentro de un servidor de aplicaciones JEE, no utiliza el servidor Web incorporado. Cambie el tamaño de la cabecera del búfer dentro de las configuraciones del servidor de aplicaciones.
Aunque la especificación HTTP no pone un límite máximo en las cabeceras de los mensajes, si se necesitan más de 24k para el tamaño del búfer de la cabecera HTTP, se necesita otra solución. Cuanto mayor sea el tamaño del búfer de cabecera, más memoria tomará cada socket HTTP abierto. Esto incluye sockets que están esperando a una conexión. Cada zócalo requiere que se le asigne en todo momento la memoria para las cabeceras de los mensajes de solicitud y de respuesta. Aumentar drásticamente el tamaño del encabezado del mensaje tendrá un efecto directo en la cantidad de memoria mínima que AEM debe tener que ejecutar.
Si la URL de las peticiones es demasiado grande debido al tamaño de los argumentos de la URL, cambie las peticiones para utilizar el método POST en lugar de GET. Los parámetros para las peticiones GET se añaden al tamaño de la cabecera del mensaje. Sin embargo, los parámetros para las solicitudes POST se añaden al contenido del mensaje.
Si el tamaño de las cookies hace que el encabezado del mensaje sea demasiado grande, considere eliminar la información almacenada en las cookies o almacenar los datos de otra manera. Los objetos de almacenamiento web del navegador no hacen que los encabezados de los mensajes crezcan. El Contexto del Cliente dentro de AEM puede, con el tiempo, requerir una gran cantidad de datos guardados. De forma predeterminada, las versiones posteriores de AEM utilizan objetos de almacenamiento Web para los datos de Contexto de Cliente. Las versiones anteriores confirman los datos del Contexto del Cliente utilizando cookies. Consulte Contexto del cliente en detalle para obtener información sobre cómo cambiar la forma en que se almacenan los datos.
Información adicional
AEM/CQ tiene un búfer para el contenido del encabezado de la solicitud HTTP. El contenido de los encabezados de solicitud y respuesta HTTP debe encajar en el búfer. Dentro de CQ 5.5 y AEM 5.6, el tamaño predeterminado de este búfer es 8k. El tamaño por defecto del buffer de cabecera es mayor en AEM 6.
Todos los mensajes HTTP tienen dos partes, el encabezado del mensaje y el cuerpo del mensaje.
El cuerpo del mensaje contiene toda la información que pensamos que es el contenido del mensaje. Ejemplos de cuerpo del mensaje serían el texto HTML de una página web o el binario de una imagen. Para los mensajes HTTP que utilizan peticiones POST, el cuerpo del mensaje puede contener los parámetros de la petición de envío.
La cabecera contiene información sobre la solicitud o la respuesta. Esto incluye el método HTTP utilizado y la URL solicitada. Para los mensajes de respuesta HTTP, también se incluye el estado HTTP de la respuesta. Otra información sobre el mensaje HTTP puede incluirse en forma de pares clave/valor que se denominan campos de cabecera. Las cookies del navegador también se envían y reciben como pares clave/valor dentro de los encabezados de los mensajes.
Un encabezado de mensaje debe ser evaluado en el momento de la recepción y es procesado como un todo antes de que el servidor o el navegador actúe sobre el contenido del mensaje. AEM lee el encabezado del mensaje HTTP en un búfer que debe ser lo suficientemente grande para contener el encabezado completo. Si el contenido del encabezado de un mensaje HTTP es demasiado grande para caber en el búfer, el mensaje falla.
Hay algunas condiciones que pueden hacer que el encabezado del mensaje HTTP sea demasiado grande para caber en el búfer del servidor. Cualquiera de estas condiciones puede, por sí sola o con otras condiciones, hacer que el HTTP sea demasiado grande.
La URL de una solicitud puede ser demasiado larga para el búfer. Esto puede ocurrir, por ejemplo, cuando una solicitud tiene cientos de argumentos de URL. O puede ocurrir cuando los argumentos individuales de la URL son enormes.
La información guardada en las cookies puede crecer hasta el punto en que hace que el encabezado ya no quepa en el búfer del encabezado del servidor. Este problema puede ser causado por muchas cookies pequeñas o menos cookies extremadamente grandes.
Los desarrolladores pueden crear campos de encabezados personalizados. A menudo, las implementaciones de inicio de sesión único utilizan campos de encabezado personalizados. Debido a que el tamaño de los valores en los campos de encabezado no está limitado en la especificación HTTP, los desarrolladores pueden crear campos de encabezado con una gran cantidad de contenido.
Consultar también
Especificación de mensaje HTTP
Especificación de almacenamiento Web HTTP