ajax4jsf跟outputStream.write冲突?

ajax4jsf跟outputStream.write冲突?

我在项目中引入ajax4jsf框架
web.xml中加入

  < filter >
        
< display-name > Ajax4jsf Filter </ display-name >
        
< filter-name > ajax4jsf </ filter-name >
        
< filter-class > org.ajax4jsf.Filter </ filter-class >
  
</ filter >
  
< filter-mapping >  
      
< filter-name > ajax4jsf </ filter-name >
      
< servlet-name > Faces Servlet </ servlet-name >
      
< dispatcher > REQUEST </ dispatcher >
      
< dispatcher > FORWARD </ dispatcher >
      
< dispatcher > INCLUDE </ dispatcher >
 
</ filter-mapping >


结果以前的输出文件到客户端的代码就出问题了

                InputStream fileInputStream  =  mgt.downloadToStream(result_pathEl.getTextTrim());
                mgt.deleteFile(result_pathEl.getTextTrim());
// 删除临时的报表文件
                JSFUtil.setSessionAttribute(sessionId,  " true " );
                
if ( fileInputStream  ==   null  ) {
                  System.out.println(
"==========get inputstream is null========");
                }


                OutputStream o 
=  response.getOutputStream();
                response.reset();
                response.setContentType( 
" APPLICATION/OCTET-STREAM "  );
                response.setHeader( 
" Content-Disposition " " attachment;filename=\ ""  +  " exportExcel.xls " " \ ""  );

                
int  length;
                
byte  buf[]  =   new   byte [ 1024 ];

                
while  ( ( length  =  fileInputStream.read( buf,  0 1024  ) )  !=   - 1  )  {
                    o.write( buf, 
0, length );
                }

                o.flush();
                o.close();
                fileInputStream.close();


提示错误如下:主要是o.write出问题

java.lang.NullPointerException
        at org.ajax4jsf.framework.ajax.xmlfilter.FilterServletResponseWrapper$By
teArrayServletOutputStream.write(FilterServletResponseWrapper.java:290)


把web.xml中的ajax4jsf的filter给去掉后,一切又恢复正常

有那位仁兄遇到同样情况的吗?

你可能感兴趣的:(ajax4jsf跟outputStream.write冲突?)