Ajuda com p:fileDownload do primefaces

boa tarde , estou fazendo a parte de exportaçao de relatorio do meu sistema e estou testando a exportaçao xls.

tenhu o seguinte codigo

[code]public StreamedContent gerarExcel(List listRelatorioVisitaQuestao) throws Exception {

   StreamedContent arquivoXLS = null;
	HSSFWorkbook wb = new HSSFWorkbook();   
    HSSFSheet sheet = wb.createSheet("Lista Usuarios");   
        
        for (int cont = 0; cont < listRelatorioVisitaQuestao.size(); cont++) {   
  
           // usuarioDTO = (UsuarioDTO) listaUsuarios.get(cont); 
            RelatorioPergunta relatorioPergunta = listRelatorioVisitaQuestao.get(cont);
  
            HSSFRow row = sheet.createRow(cont);   
  
            HSSFCell celula0 = row.createCell((short) (0));   
            sheet.autoSizeColumn((short) 0);   
               
               
            celula0.setCellValue(relatorioPergunta.getVisitaQuestao().getId_visita_questao());   
            HSSFCell celula1 = row.createCell((short) (1));   
            sheet.autoSizeColumn((short) 1);   
              
               
            celula1.setCellValue(relatorioPergunta.getVisitaQuestao().getQuestao().getDescricao());   
            HSSFCell celula2 = row.createCell((short) (2));   
            sheet.autoSizeColumn((short) 2);                     
        }   
        FileOutputStream stream = new FileOutputStream("planilhausu.xls");   
        wb.write(stream);   
        
        File arquivo = new File("planilhausu.xls");
        arquivoXLS = new DefaultStreamedContent(new FileInputStream(arquivo), "planilhausu/xls", "relatorio2.xls");
        return arquivoXLS;
    
}[/code]

na linha onde esta assim:

FileOutputStream stream = new FileOutputStream("planilhausu.xls");   
            wb.write(stream);   

se eu colocar assim:

FileOutputStream stream = new FileOutputStream("D:/planilhausu.xls"); wb.write(stream);

o relatorio é salvo normalmente no disco D: do meu pc

so que se eu colocar a parte do

 File arquivo = new File("planilhausu.xls");
 arquivoXLS = new DefaultStreamedContent(new FileInputStream(arquivo), "planilhausu/xls", "relatorio2.xls");
 return arquivoXLS;

o sistema da erro 500 na tela, eu nao tenhu ideia do que pode ser porque segui esse modelo no pdf e deu certo

alguem saberia dizer se com xls é diferente?

Coloca o stacktrace do erro.

[code]May 22, 2012 3:01:28 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/ControlMobileWeb2.0] threw exception [null] with root cause
javax.servlet.ServletException
at com.controlmobile.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:45)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

[/code]