weblogic - '响应已经提交'

时间:2015-10-13 10:12:04

标签: java jsp weblogic12c

我已在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();是抛出异常的行。

1 个答案:

答案 0 :(得分:1)

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

  

清除缓冲区的内容。如果缓冲区已经存在   刷新然后清除操作将抛出IOException信号   事实上,一些数据已经不可撤销地写入了   客户响应流。

WebLogic 12c在刷新输出方面可能比Tomcat更具攻击性。因此,清除缓冲区已不再可行。

最有可能的是,您只需删除行clear即可修复它。