从spring控制器下载文件NotSerializableException

时间:2016-01-25 07:48:00

标签: java spring file model-view-controller download

我正在使用Spring Frame工作3.05,我想使用相同的框架下载文件。谷歌搜索后我在这个堆栈溢出链接中找到答案。

Downloading a file from spring controllers

在上面的链接中 - >斯科特卡尔森 - 答案

但是,如果我尝试按照上面的链接建议。我得到以下错误:

写入输出流时出错,原因是:java.io.NotSerializableException:org.springframework.core.io.FileSystemResource

我的代码看起来像:

    FileSystemResource fsr =  new FileSystemResource(path);         

    try
    {

        OutputStream outstr = res.getOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(outstr);
        oos.writeObject(fsr);
        oos.flush();
        oos.close();
    }
    catch(Exception e)
    {
        log4log.error("Error while writing to output stream due to :"+e.toString());
        return null;
    }

请帮帮我......

1 个答案:

答案 0 :(得分:1)

您要做的是将FileSystemResource的内容复制到回复中Outputstream

InputStream in = fsr.getInputStream();
OutputStream out = response.getOutputStream();
org.apache.commons.io.IOUtils.copy(in, out);

您在代码中尝试执行的操作实际上是尝试serialize an object到响应的输出流中。