微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java Servlet 在 getOutputStream().close() 之后总是返回一个 succes:false

如何解决Java Servlet 在 getOutputStream().close() 之后总是返回一个 succes:false

在 Spring MVC 中,我有一个控制器:

     @RequestMapping(method = RequestMethod.POST,value = "/generacionGuias")
        public @ResponseBody GeneracionGuiaEstafetaSolicitud proceSaralta(@modelattribute GeneracionGuiaEstafetaSolicitud instance,HttpServletRequest request,HttpServletResponse response) throws Exception {
            
            GeneracionGuiaEstafetaSolicitud respuesta = new GeneracionGuiaEstafetaSolicitud();
            respuesta.setSuccess(false);
    
            String fileZip = "generacionArchivosGuias";
            
            ByteArrayOutputStream zipFinalFile = new ByteArrayOutputStream();
    
            try {
                respuesta = ((GeneracionGuiasEstafetaService) service).generacionDeDocumentosGuias(instance);
            } catch (Exception e) {
                throw new MicroServicioException("0002",e.toString());
            }
            try{
                zipFinalFile =((GeneracionGuiasEstafetaService) service).generadorZIP(respuesta);
            }catch(Exception e){
                logger.error("Problema en la creación del archivo ZIP: " + e.getMessage());
                throw new  SibamexStoredProcedureException("000005","Problema con la generación del Archivo ZIP");
            }
            
            byte[] file = zipFinalFile.toByteArray();
            respuesta.setArchivo(file);
            
            try{
                response.resetBuffer();
                response.setContentType("application/zip");
                response.setHeader("Content-disposition","attachment; filename=" + fileZip + ".zip");
                response.getoutputStream().write(file);
                response.getoutputStream().flush();
                respuesta.setSuccess(true);
            }catch (Exception e) {
                logger.error("Error en la generación del archivo zip: " + e.getMessage());
                respuesta.setSuccess(false);
            }finally {
                response.getoutputStream().close();
                respuesta.setSuccess(true);
            }
    
            logger.info("Regresa respuesta con archivo a descargar");
    
            return respuesta;
        }

我在服务中创建了一个 ZIP 文件并将其转换为字节 [],我尝试使用 response.getoutputStream().write(file); 行将其写入响应中。尝试从前端下载它,但是当我到达 response.getoutputStream().close();即使响应返回 200 代码,它也总是返回“Succes:false”,知道为什么会这样吗?

Log printed in the browser

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?