当前位置: 代码迷 >> Java Web开发 >> 文件下载失败,tomcat上顺利,更换weblogic后失败
  详细解决方案

文件下载失败,tomcat上顺利,更换weblogic后失败

热度:72   发布时间:2016-04-13 22:14:33.0
文件下载失败,tomcat上成功,更换weblogic后失败
系统使用框架是springMVC + 前端jquery ,在开发者本机都是好的,tomcat+linux也是好的,就是部署在linux +weblogic上的时候,测试环境就报错了。报错信息如下:

前端JSP下载的代码如下:
点击下载的事件:
$("#downloadTemplet").bind("click",function(){
//下载模版
$("#fileForm").submit();
});

HTML代码:
<form id="fileForm" action="${_base}/sale/subsUserBatch/downloadTempFile" method="post">
<!-- 空<form>下载模版 -->
</form>

后台java代码:

/**
     * 下载《用户批量上传》模版
     */
    @RequestMapping(value="downloadTempFile",method=RequestMethod.POST)
    public void downloadTempFile(HttpServletRequest request, HttpServletResponse response) throws Exception{
        //模板下载后给用户显示的文件名称
        String fileName = "批量开户导入模板(用户下载)"+".xls";
        this.downloadTempletFileOfExample(request, response, UPLOAD_TEMPLET_FILE_NAME, TEMPLET_FILE_PATH, fileName);
     }
/**
     * 下载上传文件模板——样例方法(可直接使用此方法)
     * @param request
     * @param response
     * @param templetFileName 模板文件名 例:userTemplet.xls
     * @param filePath 模板文件路径 例:\\excel_config\\templet\\
     * @param fileName 模板下载后给用户显示的文件名称
     * @throws Exception
     * @author moubd
     */
    public void downloadTempletFileOfExample(HttpServletRequest request,HttpServletResponse response,String templetFileName,String filePath,String fileName) throws Exception{
        String realPath = request.getSession().getServletContext().getRealPath("");
        OutputStream outputStream = null;
        PrintWriter printWriter =null;
        FileInputStream fileInputStream = null;
        InputStream inps = null;
        try {
            logger.debug(realPath+filePath+templetFileName);
            fileInputStream = new FileInputStream(realPath+filePath+templetFileName);
            
            inps = new BufferedInputStream(fileInputStream);
            byte[] buffer = new byte[inps.available()];
            inps.read(buffer);
            inps.close();
            response.setContentType("application/vnd.ms-excel");
            response.setHeader("Content-disposition", "attachment;filename="
                    + new String((fileName).getBytes("GBK"), "ISO8859-1"));
            outputStream = response.getOutputStream();
            outputStream.write(buffer);
            outputStream.flush();
         } catch (Exception e) {
                String retMsg = e.getCause() == null ? e.getMessage() : e.getCause().getMessage();
                String message = "下载明细文件失败,失败原因:"+retMsg;
                logger.error(message);
                response.setContentType("text/html;charset=utf-8");
                printWriter = response.getWriter();
                printWriter.write(message);
                printWriter.flush();
        }finally{
            if(inps!=null){
                inps.close();
            }
            if(fileInputStream!=null){
                fileInputStream.close();
            }
            if(outputStream!=null){
                outputStream.close();
            }
            if(printWriter!=null){
                printWriter.close();
            }
        }
    }

下面就麻烦高人帮忙指点下,这个问题该怎么解决。。。。
------解决思路----------------------
LZ大概是部署时漏了什么文件吧?从错误信息来看是JSP中引用了某个对象的title属性(很可能是在某个struct标签中),但是这个title属性在服务器上对应的bean里面没有被发现