我已在weblogic 12c服务器上部署了我的应用程序。我看到response already committed
错误指向out.clear();
行。不知道为什么我只用weblogic服务器面对这个问题 - 与tomcat一起工作正常。
以下是代码段。任何帮助,将不胜感激!谢谢。
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();
是抛出异常的行。
答案 0 :(得分:1)
您不会显示{{ foo }}
的声明,但我认为它是out
个实例。因此,您的代码依赖于servlet容器的一些依赖于实现的行为,即它们刷新输出的速度。刷新第一个字节后(向下游发送到客户端),可能不再调用JSPWriter
(请参阅documentation。
清除缓冲区的内容。如果缓冲区已经存在 刷新然后清除操作将抛出IOException信号 事实上,一些数据已经不可撤销地写入了 客户响应流。
WebLogic 12c在刷新输出方面可能比Tomcat更具攻击性。因此,清除缓冲区已不再可行。
最有可能的是,您只需删除行clear
即可修复它。