当前位置: 首页 > 知识库问答 >
问题:

响应提交后,Tomcat异常无法调用sendError()?

孙福
2023-03-14

在我的应用程序中执行一些操作时,我得到了

Java . lang . illegalstateexception无法调用sendError()

当我再次重新加载页面时,它会正常工作一段时间,但一段时间后它再次显示相同的异常。我如何克服这个异常?

以下是例外:

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.

支柱.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>

共有3个答案

齐晟
2023-03-14

我通过向另一个对象列表的所有 getter 添加@jsonIgnore来解决此错误

全丰
2023-03-14

此错误是其他问题的症状,而不是您要寻找的根本原因。

此错误解释了无法将用户重定向到错误页的原因。(原因:服务器已将部分响应缓冲区刷新回客户端 - 为时已晚,无法切换/重定向到错误页面。

正如错误消息所指出的那样,请检查Apache Tomcat 7日志中的其他位置(或以另一种方式调试您的应用程序),以查找引发异常的内容。

芮叶秋
2023-03-14

我在创造一种“多对一”和“一对一”的关系。我在@ManyToOne上面添加了< code>@JsonIgnore,它解决了这个错误。

 类似资料:
  • 你好,Hibernate和Jackson有问题。有两个POJO 为Spring Security集成而设计的用户及其角色。 还有一个控制器,通过Jackson从用户Json生成。With方法 当此方法返回不带null字段的用户时,将抛出: 当我添加@OneTo很多时,这个问题就出现了(mep dBy="user", cascade=CascadeType. ALL, fetch=FetchType

  • 我知道这里已经讨论过至少一百万次了,但是每个servlet在调用forward()之前都会重定向或刷新输出。我有同样的问题,但我没有做任何与输出。我的servlet只接受请求参数并提交到数据库,并在请求上设置一个属性。然后,它将请求转发给jsp,jsp显示属性。我在Tomcat7上使用Servlet3.0。下面是我的servlet doPost方法,后面是转发到的jsp: JSP: 我相信我可能错

  • 问题内容: 我正在尝试使用以下代码将值从servlet传递到jsp页面: 当我运行页面时,我得到: 错误: 我尝试使用: 但是我遇到了同样的错误。 如何解决这个错误? 问题答案: 您已经在catch代码块中转发了响应: 因此,您不能再次调用: 因为它已经转发(提交)。 因此,您可以做的是:保留一个字符串以分配需要转发响应的位置。

  • 我使用过滤器来确定请求的页面是否具有有效的会话。 这是我的密码<代码>网络。xml: 过滤器类别: 我有一个登录页面,用于检查用户是否有效。如果用户有效,则将控制转移到此servlet。 这在没有过滤器的情况下可以工作,但是当我将控件转发到“//showuserImages.jsp”时,过滤器会显示一个错误。

  • 当我尝试使用Spring boot和Spring mvc下载压缩文件时,出现了一个错误: null 基本上,我的应用程序是加载一个文件,压缩它并下载新的压缩文件。 这是我的应用程序控制器: 如果我关闭输入和输出流,我不知道为什么会发生这种情况。

  • 我正在应用程序中使用Windows Azure SQL Server,当我连接到应用程序时,它显示以下错误。 hibernate.cfg.xml: .................. http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/cont