【发布时间】:2013-08-06 19:46:56
【问题描述】:
我有一个直接写入输出流的操作。有时我会遇到以下错误:
Error processing GroovyPageView: getOutputStream() has already been called for this response
Caused by getOutputStream() has already been called for this response
还有这个:
Executing action [getImage] of controller [buddyis.ItemController] caused exception: Runtime error executing action
Caused by Broken pipe
我该如何解决这些问题?下面列出了我使用的操作。
注意:如果这很重要,我使用的是 Tomcat 7.0.42!
def getImage() {
byte [] imageByteArray = // some image bytes
response.setHeader 'Content-disposition', "attachment; filename=\"${imageName}${imageExtension}\""
response.setContentType("image/pjpeg; charset=UTF-8")
response.contentLength = imageByteArray.size()
response.outputStream.write(imageByteArray)
response.outputStream.flush()
response.outputStream.close()
return
}
【问题讨论】:
-
尝试渲染一些东西(虚拟)来索引或渲染状态代码,看看你是否仍然遇到问题。您可以在返回之前以
render(status: 200)或至少render "Done"等开头。
标签: spring grails grails-2.0