2010-01-08 7 views
7

WebSphere registra el mensaje de advertencia "SRTServletRes W ADVERTENCIA: No se puede establecer el encabezado. Respuesta ya comprometida "para una solicitud JSP. Necesito los encabezados respondidos más adelante en mi código. Hice algunas investigaciones y comprendí que Servlet está tratando de enviar más datos a la secuencia de salida, pero la transmisión ya se ha confirmado. No entendí por qué esto le sucede solo a este JSP en particular, ya que este código de Servlet funciona bien para otros JSP. Esta página no se redirige y recibo la respuesta sin encabezados de respuesta.No se puede establecer el encabezado en JSP. Respuesta ya confirmada

Respuesta

20

Cuando se confirma una respuesta, significa que al menos los encabezados ya se han enviado al lado del cliente. No puede configurar/cambiar encabezados cuando la respuesta ya está comprometida, porque es demasiado tarde.

Una respuesta se va a cometer cada vez que uno o más de las siguientes condiciones se cumple:

  • HttpServletResponse#sendRedirect() ha sido llamado.
  • Ya se han escrito más de 2K en la salida de respuesta, ya sea por Servlet o por JSP.
  • Se han escrito más de 0K pero menos de 2K yflush() en la secuencia de salida de respuesta, ya sea por Servlet o JSP.

El límite del buffer 2K se puede configurar en la configuración del servidor de aplicaciones.

Debe reorganizar la lógica del código para que solo establezca los encabezados antes de se ha confirmado la respuesta. Debe nunca configurar/cambiar los encabezados de respuesta usando scriptlets dentro/a medio camino un JSP. Solo debe hacerlo en un Filter antes de continuar la cadena, o en un controlador de página Servlet antes de enviar la solicitud. También tenga cuidado de que ninguno de ellos haya sido llamado por un archivo de inclusión JSP.

Cuestiones relacionadas