Gerar relatorio pdf

3 respostas
G

Estou com o seguinte problema tenho essas duas classes para gerar para mim um relatorio em pdf.

public abstract class reporterAction {

@In  
      FacesMessages facesMessages;  
        
    //@In  
    // EntityManager manager;  
        
      @In(value = "org.jboss.seam.pdf.documentStore", create = true)  
      DocumentStore documentStore;  
    
     
      protected abstract String getReportPath();  
      protected abstract Map<String, Object> getParams();  
      
      
      
        
      @SuppressWarnings("deprecation")  
      public String print() {  
            
          String reportUrl = getReportPath();    
            
          try {  
             Map<String, Object> params = new HashMap<String, Object>();  
                
              // o entity manager deve ser informado para o Jasper  
             // params.put(JRJpaQueryExecuterFactory.PARAMETER_JPA_ENTITY_MANAGER, manager);  
        
              // obter os parâmetros específicos do relatório  
             params.putAll(getParams()); 
              	              
              
              
                
              // obter o caminho real (file system) para o relatório  
              FacesContext facesContext = FacesContext.getCurrentInstance();  
              HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest();  
              String reportUrlReal = request.getRealPath(reportUrl);  
              
              
              
        
              // imprimir o relatório para um stream em PDF 
           
              JasperPrint impresao = JasperFillManager.fillReport(reportUrlReal, params);  
              ByteArrayOutputStream output = new ByteArrayOutputStream();  
              JasperExportManager.exportReportToPdfStream(impresao, output);  
              
              
              
                
              // armazenar o relatório do DocumentStore do SEAM  
              String reportId = documentStore.newId();  
              DocumentData data = new DocumentData("Report #" + reportId , DocType.PDF, output.toByteArray());  
              documentStore.saveData(reportId, data);  
              
              
                
              // retornar para o caminho padrão do SEAM para exibição de relatórios  
              return "/seam-doc?docId=" + reportId;  
        
          } catch (Exception e) {  
            facesMessages.addFromResourceBundle("ERRO_RELATORIO:"+ e.getMessage(),   
                    new Object[] {reportUrl, e.getMessage()});  
             
              return null;  
          }  
      }  
  }

@Name(“listaDocumentoApolo”)
public class ListaDocumentoApolo extends reporterAction {

@Override  
     protected String getReportPath() {  
         return "/WEB-INF/relatoriosJasper/Relatorio_Funcionarios.jasper";  
     }  
   
     
     
     //Passar os parametros
     
    @Override  
     protected Map<String, Object> getParams() {  
       Map<String, Object> params = new HashMap<String, Object>();  
      params.put("",null);  
      
         return params;  
     }  
 }

Mas ele esta retornando o seguinte erro.

14:23:58,322 ERROR [SeamPhaseListener] uncaught exception
javax.el.ELException: java.lang.reflect.InvocationTargetException

3 Respostas

felipedamiani

posta o resto da excessão pra ficar melhor de entender qual o erro!

G

Tai a msn completa

16:36:07,562 ERROR [SeamPhaseListener] uncaught exception

javax.el.ELException: java.lang.reflect.InvocationTargetException

at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:332)

at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:341)

at org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)

at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)

at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)

at org.jboss.seam.core.Expressions$2.invoke(Expressions.java:174)

at org.jboss.seam.navigation.Pages.callAction(Pages.java:634)

at org.jboss.seam.navigation.Pages.preRender(Pages.java:289)

at org.jboss.seam.jsf.SeamPhaseListener.preRenderPage(SeamPhaseListener.java:544)

at org.jboss.seam.jsf.SeamPhaseListener.beforeRenderResponse(SeamPhaseListener.java:455)

at org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseListener.java:146)

at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:116)

at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)

at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)

at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)

at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)

at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)

at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)

at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)

at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)

at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)

at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)

at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)

at java.lang.Thread.run(Thread.java:619)

Caused by: java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)

at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)

at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)

at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)

at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)

at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)

at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)

at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)

at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)

at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)

at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)

at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)

at RelatoriosEJB.ListaDocumentoApolo_$$<em>javassist_8.print(ListaDocumentoApolo</em>$$_javassist_8.java)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)

 51 more

Caused by: java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException

at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfStream(JasperExportManager.java:162)

at RelatoriosEJB.reporterAction.print(reporterAction.java:68)

 73 more
thiagodiogo

grmorato, de uma olhada nessa linha da sua StackTrace:

Caused by: java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException

No caso, essa classe aí não foi encontrada, isso quer dizer que está faltando algum “jar” na sua aplicação. Se não me engano, no seu caso é o iText.jar

Abraço!

Criado 29 de fevereiro de 2008
Ultima resposta 14 de abr. de 2008
Respostas 3
Participantes 3