【问题标题】:weblogic - 'response already committed'weblogic - '响应已经提交'
【发布时间】:2015-10-13 10:12:04
【问题描述】:

我已经在 weblogic 12c 服务器上部署了我的应用程序。我看到response already committed 错误指向out.clear(); 行。不知道为什么我只使用 weblogic 服务器会遇到这个问题 - 使用 tomcat 可以正常工作。

下面是代码sn-p。任何帮助,将不胜感激!谢谢。

request.getRequestDispatcher(toolbarURL.toString()).include(request, customResponse);
Element toolbarCode = new Element("toolbarCode");
toolbarCode.setContent(new CDATA(customResponse.getOutput()));

root.addContent(toolbarCode);

XMLOutputter  outputter = new XMLOutputter(format);
out.clear();
outputter.output(new DocType("html"), out);
outputter.output(transformer.transform(doc), out);

out.clear(); 行是引发异常的行。

【问题讨论】:

    标签: java jsp weblogic12c


    【解决方案1】:

    您没有显示out 的声明,但我认为它是JSPWriter 实例。因此,您的代码依赖于 servlet 容器的一些实现相关行为,即它们刷新输出的速度。一旦第一个字节被刷新(向下游发送到客户端),clear 可能不再被调用(参见documentation

    清除缓冲区的内容。如果缓冲区已经 flushed 然后清除操作将抛出一个 IOException 来发出信号 一些数据已经不可撤销地写入到 客户端响应流。

    WebLogic 12c 在刷新输出方面可能比 Tomcat 更积极。因此,不再可以清除缓冲区。

    很可能,您只需删除行 out.clear(); 即可修复它。

    【讨论】:

      猜你喜欢
      • 2013-06-21
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      • 2016-03-08
      • 2018-11-30
      • 2018-09-16
      • 2012-08-25
      相关资源
      最近更新 更多