Mientras que haciendo algunas operaciones en mi aplicación tengo

java.lang.IllegalStateException No se puede llamar a sendError()

Cuando me vuelva a cargar la página de nuevo el trabajo de algún tiempo correctamente, pero después de algún tiempo de nuevo se muestra la misma excepción. ¿Cómo puedo superar esta excepción?

A continuación es la excepción:

HTTP Status 500 - Cannot call sendError() after the response has been committed
type Exception report
message Cannot call sendError() after the response has been committed
description The server encountered an internal error that prevented it from fulfilling this request.
exception 
java.lang.IllegalStateException: Cannot call sendError() after the response has been committed
org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:451)
org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:725)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.40 logs.

Struts.xml

<struts>
    <package name="default" extends="hibernate-default">
        <action name="addUser" method="add" class="com.demo.action.UserAction">
            <result name="input">/register.jsp</result>
            <result name="success" type="redirect">list</result>
        </action>
        <action name="list" method="list" class="com.demo.action.UserAction">
            <interceptor-ref name="basicStackHibernate" />
            <result name="success">/list.jsp</result>
        </action>
    </package>
</struts>
  • Son por casualidad redirigir al usuario antes de lógica adicional en su sevlet? response.sendRedirect(SOMEWHERE);
  • Estoy haciendo una aplicación web en struts2 y he configurado atributo redirect debido a que Mi respuesta va a imprimir la lista de usuarios . Agradeciendo muy mucho
  • Podrías actualizar tu pregunta con el trozo de código que incluye su sentencia de redirección?
  • asegúrese de actualizar ahora ver el código actualizado.
  • Usted debe revisar los registros de Tomcat y post completo stacktrace con la raíz de la causa.
  • me encuentro con este problema a la hora de configurar la primavera de arranque con seguridad. En mi AuthenticationEventHandler, yo estaba usando el método de «super.» mientras que yo iba a enviar una respuesta después de usarlo..
  • property=»id») @JsonIdentityReference(alwaysAsId=true)

InformationsquelleAutor | 2013-12-28

8 Comentarios

  1. 26

    Este error es un síntoma de algún otro problema, no la causa raíz que estás buscando.

    Este error se explica por qué el usuario no puede ser redirigido a la página de error. (Razón: el servidor ya ha vacían parte de que el búfer de respuesta al cliente – es demasiado tarde para cambiar/redirigir a la página de error.)

    Como el mensaje de error señala, comprobar en el resto de Apache Tomcat 7 los registros (o depuración de la aplicación de otra forma) para encontrar lo que es lanzar una excepción.

    • Acerca de la depuración en «otra forma», es difícil de depurar el momento cuando la respuesta es confirmada debido a la falta de org.apache.el coyote.La respuesta de la clase durante el desarrollo, sin embargo, hay disponibles org.apache.catalina.el conector.OutputBuffer donde usted puede poner puntos de ruptura en el método flush ().
  2. 6

    He solucionado este error mediante la adición de @jsonIgnore a todos los getters para una Lista de otro objeto

  3. 5

    Me fue la creación de un @ManyToOne y @OneToMany relación. He añadido @JsonIgnore por encima de la @ManyToOne y solucionado el error.

  4. 1

    Este es un error común y puede haber varias causas puede ser identificado. En mi caso me fueron al abrir el archivo pdf desde el servicio web y para esto yo estaba realizando una operación de escritura en el archivo usando el buffer.
    Tan amablemente cambio a continuación:

            File outfile = File.createTempFile("temp", ".pdf");
    
            OutputStream os=new FileOutputStream(outfile);
            byte[] buffer = new byte[1024];
    
            int length;
            /*copying the contents from input stream to
             * output stream using read and write methods
             */
            while ((length = is.read(buffer)) > 0){
                os.write(buffer, 0, length);
            }

    a

            File outfile = File.createTempFile("temp", ".pdf");
            IOUtils.copy(is, new FileOutputStream(outfile));

    y después de esto yo estaba realizando por debajo de operación:

        javax.ws.rs.core.Response.ResponseBuilder responseBuilder = javax.ws.rs.core.Response
                    .ok(outfile, MediaType.APPLICATION_OCTET_STREAM);
                    responseBuilder.header("content-type","application/pdf");
    
                 return responseBuilder.build();

    de error y se resuelven.
    Saludos!

  5. 1

    Para otros en mi situación-Lo que estaba sucediendo era que tenía dos @Entidad de objetos con una relación de muchos a muchos causando infinito de json generado, causando la primavera seguridad a tirar este error. Trate de añadir @JsonIgnore por encima de su hibernación relaciones.

  6. 0

    si u uso de anotaciones like:@WebFilter,@WebServlet…,sólo tiene que añadir metadatos completos=»true» en web.xml
    e.g

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
             xmlns="http://java.sun.com/xml/ns/javaee" 
             xmlns:web="http://java.sun.com/xml/ns/javaee" 
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
             id="WebApp_ID" metadata-complete="true" version="3.0">

    La esperanza de que esta es su necesidad!

  7. 0

    Puedes probar con esta Anotación será de ayuda como solucionado mi problema.

    Sin duda le ayudará si no va a ser capaz de ayudar a usted, a continuación, intente modificar este como por su exigencia.

    @JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
       @JsonIdentityReference(alwaysAsId=true)
  8. -2

    He superado la excepción,usted puede revisar su estructura de la tabla.Yo ejecutar la consulta sql producido por hibernate en mysql.
    Como exceptuados,se produce una excepción.

    [Err] 1054 - Unknown column 'this_.ID' in 'field list'

    Me encontré con que un campo ID que faltan en la tabla.Agregar el ID en la tabla ,es correcto.
    Espero que sea útil.

Dejar respuesta

Please enter your comment!
Please enter your name here