Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ClientBortException:java.io.IOException:管道破裂_Java_Grails_Spring Mvc_Grails 2.0 - Fatal编程技术网

ClientBortException:java.io.IOException:管道破裂

ClientBortException:java.io.IOException:管道破裂,java,grails,spring-mvc,grails-2.0,Java,Grails,Spring Mvc,Grails 2.0,我有以下代码在Grails中的outputstream上发送jpg图像。我在缓存头生成{…}语句中使用这个块 def imageByteArray = // some image byte [] response.setContentType("image/jpeg") response.setHeader("Content-disposition", "filename=\"${imageN

我有以下代码在Grails中的outputstream上发送jpg图像。我在缓存头生成{…}语句中使用这个块

                            def imageByteArray = // some image byte []
            response.setContentType("image/jpeg")
            response.setHeader("Content-disposition", "filename=\"${imageName}${imageExtension}\"")
            response.setContentLength(imageByteArray.size())

            def outputStream = null
            try {
                outputStream = response.outputStream
                outputStream << imageByteArray
            } catch (IOException e){
                log.error('getImage() - Canceled download?', e)
            } finally {
                if (outputStream != null){
                    try {
                        outputStream.close()
                    } catch (IOException e) {
                        log.error('Exception on close', e)
                    }
                }
                return
            }
为了避免这个错误,我不知道要更改什么。我还尝试在outputstream上使用flush(),但没有成功。 怎么办


从错误日志中,我可以看到“取消下载”被抛出,因此我认为写操作出错了

尽量不要关闭response.outputStream。一般来说,如果你没有打开一个流,你就不应该关闭它。@AnujAneja我取消了下载异常,这是我应该担心的,还是我应该把它留下,不打印出来?所以问题是我应该处理这个异常吗?
2013-09-17 12:51:55,033 [http-nio-80-exec-15] ERROR test.ItemController  - getImage() - Canceled download?
ClientAbortException:  java.io.IOException: Broken pipe
    at test.ItemController$_getImage_closure2_closure11.doCall(ItemController.groovy:287)
    at com.grailsrocks.cacheheaders.CacheHeadersService.callClosure(CacheHeadersService.groovy:209)
    at com.grailsrocks.cacheheaders.CacheHeadersService.withCacheHeaders(CacheHeadersService.groovy:201)
    at CacheHeadersGrailsPlugin$_addCacheMethods_closure7_closure11.doCall(CacheHeadersGrailsPlugin.groovy:61)
    at test.ItemController.getImage(ItemController.groovy:204)
    at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:200)
    at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)
    at test.ItemController.getFacebookImage(ItemController.groovy:98)
    at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:200)
    at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)