[Resolvido] JasperReport com barbecue barcode

6 respostas
P

Estou tentando montar um relatório para impressão com código de barras, código de barras montado pelo report,
dentro do meu ireport, passo o parâmetro, o código de barras é montado normalmente,
tento utilizar este jasper gerado passando parâmetros através da minha aplicação, dentro do JasperFillManager.fillReport
ele sempre está me retornando NullPointerException.
Testei com outro jasper, passando parâmetros também, funcionou corretamente.

Com a experiência de quem está lendo e possa me ajudar, para gerar o jasper com código de barras, devo fazer algo de diferente?
Como teste e a procura de funcionar, coloquei o .jar do barbecue dentro do meu projeto e dentro da lib do servidor de aplicação, continua não funcionando.

Agradeço quem possa ajudar.

6 Respostas

F

Posta o stacktrace para gente ver.

P
Map parametros = new HashMap();
parametros.put("codigo", "676607547690");

bytes = gera.geraImpressao(((ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext()).getRealPath(File.separator) + "WEB-INF" + File.separator + "classes" + File.separator + "relatorios" + File.separator + "geral" + File.separator + "PVC.jasper", parametros);

// PASSA O PDF COMPLETO GERADO PARA A MEMORIA
((HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest()).getSession().setAttribute("relatorioPDF", bytes);

...

public byte[] geraImpressao(String diretorioProjetos, Map parametros) {
        try {
            JasperPrint jp = JasperFillManager.fillReport(diretorioProjetos, parametros, getConexao().getConnection());

            getConexao().close();

            return JasperExportManager.exportReportToPdf(jp);

        } catch (Exception ex) {
            ex.printStackTrace();
        }

        return null;
    }

se eu uso um arquivo jasper diferente, sem código de barras, recebendo parâmetros normais como este acima, funciona normalmente.
Para gerar relatório com código de barras produzido pelo próprio ireport, utilizando o barbecue, é necessário fazer algo dentro do meu projeto? Possuo o .jar e não consigo sucesso. Sempre da NullPointerException no fillReport

F

Então, o que a gente precisa ver é o stacktrace do erro para saber a origem do NullPointerException
É só ter o jar do barbecue no classpath. Eu acho q vc já tem.

P
java.lang.NullPointerException

at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:234)

at br.com.inloc.relatorio.controlador.GeraRelatorioGenericoPDF.geraImpressao(GeraRelatorioGenericoPDF.java:85)

at br.com.inloc.controller.geral.RelatorioEmissao.acaoPesquisar(RelatorioEmissao.java:114)

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.apache.el.parser.AstValue.invoke(AstValue.java:172)

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

at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

at javax.faces.component.UICommand.broadcast(UICommand.java:387)

at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)

at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)

at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)

at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

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

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

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

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

at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)

at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)

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

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:233)

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

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

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

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

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

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

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

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

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

Consegui resolver este problema, atualizei meu IReport e não atualizei as bibliotecas jasperReport na aplicação, com isso dava este erro, o fillReport funciona depois de atualizado, mas agora não consigo gerar o relatório com o código de barras, a página fica em branco, outro relatório normal com dados, aparece mas logo o com código de barras ta em branco.
Obrigado pela atenção.

P

Faltava algumas bibliotecas para o código de barras, alem das dos componentes, barbecue e barcode4j.

Criado 25 de maio de 2010
Ultima resposta 26 de mai. de 2010
Respostas 6
Participantes 2