gpt4 book ai didi

jquery ajax 请求导致 IllegalStateException : getOutputStream()

转载 作者:行者123 更新时间:2023-12-01 04:58:27 25 4
gpt4 key购买 nike

我有一个 spring portlet mvc 应用程序。我有一个 jsp,它使用 Ajax 请求向资源 URL 发出 GET 请求,然后使用 Spring Jackson 映射器(MappingJacksonJsonView)类返回 json。 GET 请求非常慢,可能需要几秒钟才能执行。我注意到一个用例;

  1. 我点击应用程序中的 AJAX 提交链接
  2. 我在请求完成之前刷新页面
  3. 我重复上述步骤
  4. 我的服务器日志开始抛出非法状态异常

    原因:java.lang.IllegalStateException:已为此响应调用 getOutputStream()在 org.apache.catalina.connector.Response.getWriter(Response.java:611)在 org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)在 javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:112)

因为 Spring 负责创建和删除输出读取器和写入器,所以我无法捕获非法异常,所以我发现很难隔离发生确切问题的位置。

如有任何建议或帮助,我们将不胜感激。谢谢。

最佳答案

回答 - 发生了以下情况。我想我可以将其归结为一个影响较小的问题。

当浏览器打开 Socket 并发出 Ajax 请求时,就会发生这种情况,但在收到服务器的响应之前,它会终止打开的 Socket(通过关闭浏览器或移动到另一个页面)。同时,服务器正在处理请求并尝试将输出写回浏览器,但浏览器已关闭套接字并继续前进。

关于jquery ajax 请求导致 IllegalStateException : getOutputStream(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12475306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com