reference to fillReport is ambiguous, both method fillReport(String,Map,Connection) in JasperFillManager and method fillReport(String,Map,JRDataSource) in JasperFillManager match
Obs. este relatorio nao terá acesso a banco de dados, apenas passarei por parametros alguns campos.
P
Paezani
tente assim:
ServletContextcontext=getServletContext();byte[]bytes=null;try{// carrega os arquivos jasper JasperReportrelatorioJasper=(JasperReport)JRLoader.loadObject(context.getRealPath("/WEB-INF/reports/guiaconsulta.jasper"));StringpathJasper=getServletContext().getRealPath("/WEB-INF/reports/")+"/";Stringpath=getServletContext().getRealPath("/");// parâmetros, se houverem Mapparametros=newHashMap();parametros.put("codcli",codFun);//valor do consumidor//parametros.put("caminhoImg", pathJasper + "Partener.jpg"); parametros.put("dtIni","'"+dtini+"'");//valor data inicial// direciona a saída do relatório para um stream bytes=JasperRunManager.runReportToPdf(relatorioJasper,parametros,null);}catch(JRExceptione){e.getMessage();}// envia o relatório em formato PDF para o browser res.setContentType("application/pdf");res.setContentLength(bytes.length);ServletOutputStreamouputStream=res.getOutputStream();ouputStream.write(bytes,0,bytes.length);ouputStream.flush();ouputStream.close();try{conexao.MinhaConexao.close();}catch(SQLExceptione){// TODO Auto-generated catch blocke.getMessage();e.printStackTrace();}
E
evandro_araujo
Só um duvida,
Qual componente que coloco no relatorio Ireport como parametros?? preciso definir alguns componentes como parametros, como eu faço isso ?
P
Paezani
parametros.put(“codcli”,codFun);//valor do consumidor
E
evandro_araujo
adicionou o asperreports-3.5.1.jar, no meu projeto.
AVISO:#{cadguiaMbean.vizualizarimpressao}: java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.xml.JRXmlDigesterFactoryjavax.faces.FacesException:#{cadguiaMbean.vizualizarimpressao}: java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.xml.JRXmlDigesterFactoryatcom.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)atjavax.faces.component.UICommand.broadcast(UICommand.java:315)atjavax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)atjavax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)atcom.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)atcom.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)atcom.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)atjavax.faces.webapp.FacesServlet.service(FacesServlet.java:593)atorg.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)atorg.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)atorg.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)atorg.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)atcom.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)atcom.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)atcom.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)atcom.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)atcom.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)atcom.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)<imgsrc="/uploads/3X/d/5/d59ae082e596087436b75d74ccba059c181e0494.jpg_.webp"width="690"height="500">
Tentei executar a seguinte rotina, porem fui debugar para ver percebi que na linha abaixo "reportStream"
esta preenchendo como nullo
Obs. estou anexando o debug, para ver se vc pode me ajudar por favor
//pega o caminho do arquivo .jasper da aplicação InputStreamreportStream=context.getExternalContext().getResourceAsStream(caminhoRelatorio);
HttpSessionsessao=(HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(false);FilelogoFile=newFile(sessao.getServletContext().getRealPath(System.getProperty("file.separator")+"relatorios"+System.getProperty("file.separator")));Stringcaminho=logoFile.getAbsolutePath();HashMapparameters=newHashMap();executarRelatorio(caminho,parameters,"guiaconsulta.jasper",null);publicstaticvoidexecutarRelatorio(StringcaminhoRelatorio,Map<String,Object>parametros,StringnomeRel,JRBeanCollectionDataSourcefonteDados){FacesContextcontext=FacesContext.getCurrentInstance();HttpServletResponseresponse=(HttpServletResponse)context.getExternalContext().getResponse();//pega o caminho do arquivo .jasper da aplicação InputStreamreportStream=context.getExternalContext().getResourceAsStream(caminhoRelatorio);response.setHeader("Content-Disposition","attachment; filename="+nomeRel+".pdf");response.setContentType("application/download");response.setHeader("Pragma","no-cache");try{ServletOutputStreamservletOutputStream=response.getOutputStream();//envia parametros para o relatório if(parametros==null){parametros=newHashMap<String,Object>();}//envia para o navegador o PDF gerado JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream,parametros,fonteDados);servletOutputStream.flush();servletOutputStream.close();}catch(JRExceptione){e.printStackTrace();context.responseComplete();}catch(IOExceptione){e.printStackTrace();context.responseComplete();}catch(Exceptione){e.printStackTrace();context.responseComplete();}context.responseComplete();}