[Resolvido] VRaptor+JasperReport {de novo}

3 respostas
kivervinicius

Bom dia pessoal, titulo estranho né, falo de novo pois há N Tópicos com esse titulo, e é algo que se torna muito complicado de fazer os famosos relatórios.

Então, já usei o jasperMaker do nosso amigo lavieri e antes me dava um resultado satisfatorio, agora de qualquer forma que eu faça me retorna um nullPointer no fillReport

já debuguei de N maneiras e nenhuma resposta, dai fiz da forma padrão mesmo e aconteceu a mesma coisa.
Já vi se está alimentando a lista, já vi se está convertendo para collection e tudo isso faz mas na hora de fazer o fillReport me retorna nullPointer

Olha como estou fazendo

public void geraRelatorio()
			throws Exception {

		/*
		 * Codigo para consultar a lista
		 */
		List<Produto> list = dao.listaTudo();

		/*
		 * Final da consulta, retorna array para converter em pdf
		 */

		// Localiza o contexto da pasta onde esta localizado o .jasper
		String pathJasper = context.getRealPath("/WEB-INF/jasper") + "/";

		// Faz o mapeamento do context para levar o .jasper a conversao em bytes
		Map<String, String> parametros = new HashMap<String, String>();
		parametros.put("SUBREPORT_DIR", pathJasper);

		try {
			// Recebe a lista do array populado
			JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);
			// pega o ds + a conexao para ir ate o ireport para listar o array
			// dentro do relatorio
			JasperPrint impressao = JasperFillManager.fillReport(pathJasper
					+ "/relProduto.jasper", parametros, ds);

			// converte o relatorio em bytes gerando o pdf
			byte[] bytes = JasperExportManager.exportReportToPdf(impressao);
			byte[] arquivo = bytes;

			// Tratamento para exportacao do pdf para a url do browser e o
			// tratamento de erros.
			String nomeDoArquivo = "relProduto.pdf";
			response.setContentType("application/x-msdownload");
			response.setHeader("Content-Disposition", "attachment; filename=".concat(nomeDoArquivo));
			response.setContentLength(arquivo.length);
			ServletOutputStream sos = response.getOutputStream();
			sos.write(arquivo, 0, arquivo.length);
			sos.flush();
			sos.close();
		} catch (Exception e) {
			e.printStackTrace();
		}

3 Respostas

kivervinicius

Mudando um pouco o log;

08:34:46,141 INFO [XmlBeanFactory ] Overriding bean definition for bean 'ganttType': replacing [Generic bean: class [org.springframework.beans.factory.config.FieldRetrievingFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Generic bean: class [org.springframework.beans.factory.config.FieldRetrievingFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] java.lang.NullPointerException at java.lang.Class.isAssignableFrom(Native Method) at net.sf.jasperreports.engine.fill.JRFillTextField.getFormat(JRFillTextField.java:706) at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:394) at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:368) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:258) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:499) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2016) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:757) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:269) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:127) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:938) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:860) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540) at br.com.tga.vraptor.relatorios.RelatorioDeContratosLogic.geraRelatorio(RelatorioDeContratosLogic.java:66) at br.com.tga.vraptor.controller.ProdutoController.geraRel(ProdutoController.java:103) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44) at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92) at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58) at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89) 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:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source)

kivervinicius

PS. Utilizei o código

http://www.guj.com.br/java/122447-resolvido-relatorios-ireport–vraptor
:wink:

kivervinicius

Pessoal, desculpe minha grande ignorancia, mas descobri o que acontecia, o unico “Problema” foi que o meu jar estava com versão diferente do ireport que eu estou gerando.

Aff.

Obrigado

Criado 24 de março de 2012
Ultima resposta 24 de mar. de 2012
Respostas 3
Participantes 1