VRaptor + JasperReports o que estou fazendo errado?

Bom Dia
Segui o post (http://www.guj.com.br/java/238132-contribuicao-vraptor3---plugin-para-jasperreports)
baixei o exemplo do wpivotto e não consigo de forma alguma fazer funcionar hehe
alguem poderia dar uma “luz” ? :smiley:

meu controler

@Resource
public class RelatorioController {

	private final Result result;
	private final UfDAO uf;

	public RelatorioController(Result result, UfDAO uf) {
		this.result = result;
		this.uf = uf;
	}

	@Path("/gerar/pdf")
	public Download pdfReport() {
		Report<Uf> report = generateReport();
		return new ReportDownload(report, Pdf());
	}

	private Report<Uf> generateReport() {
		List<Uf> data = uf.pegaTodos();
		RelatorioReport r = new RelatorioReport(data);
		// r.addParameter("teste", "opaaa");
		return r;

	}

}

classe Report

public class RelatorioReport implements Report<Uf> {

	private final List<Uf> data;
	private Map<String, Object> parameters;

	public RelatorioReport(List<Uf> data) {
		this.data = data;
	}

	public Collection<Uf> getData() {
		return data;
	}

	public String getFileName() {
		return "report" + System.currentTimeMillis();
	}

	public Map getParameters() {
		return this.parameters;
	}

	public String getTemplate() {
		return "/br/com/empresa/relatorios/relatorio1.jasper";
	}

	public boolean isCacheable() {
		return false;
	}

	public Report<Uf> addParameter(String key, Object value) {
		this.parameters.put(key, value);
		return this;
	}

}

erro

java.lang.NullPointerException
	net.sf.jasperreports.engine.fill.JRFillTextField.setTemplatePattern(JRFillTextField.java:324)
	net.sf.jasperreports.engine.fill.JRFillTextField.createElementTemplate(JRFillTextField.java:312)
	net.sf.jasperreports.engine.fill.JRFillElement.getElementTemplate(JRFillElement.java:777)
	net.sf.jasperreports.engine.fill.JRFillTextField.getJRTemplateText(JRFillTextField.java:300)
	net.sf.jasperreports.engine.fill.JRFillTextField.fill(JRFillTextField.java:638)
	net.sf.jasperreports.engine.fill.JRFillElementContainer.fillElements(JRFillElementContainer.java:571)
	net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:432)
	net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:378)
	net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2038)
	net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:760)
	net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:270)
	net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)
	net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946)
	net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:864)
	net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
	net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
	br.com.caelum.vraptor.jasperreports.JasperExporter.fill(JasperExporter.java:68)
	br.com.caelum.vraptor.jasperreports.JasperExporter.to(JasperExporter.java:37)
	br.com.caelum.vraptor.jasperreports.ReportDownload.write(ReportDownload.java:40)
	br.com.caelum.vraptor.interceptor.download.DownloadInterceptor.intercept(DownloadInterceptor.java:100)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:67)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:85)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.diplomata.utils.interceptors.ValidaTelasInterceptor.intercept(ValidaTelasInterceptor.java:37)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.diplomata.utils.interceptors.VerificaLoginInterceptor.intercept(VerificaLoginInterceptor.java:39)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.diplomata.utils.interceptors.HibernateTransactionInterceptor.intercept(HibernateTransactionInterceptor.java:48)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:23)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)

Olhando rapidamente e comparando as classes com o as do exemplo no github (https://github.com/wpivotto/vraptor-jasperreport-example/blob/master/src/br/com/caelum/vraptor/report/ClientsReport.java), o Map de parametros está nulo na sua classe.

No exemplo do GitHub é instanciado um Map no construtor, e na sua classe não.

Tentou verificar se não é nesse Map que está dando null pointer?

puts esse projeto de exemplo estava bem desatualizado :cry:

baixe a nova versão que acabei de atualizar

principais mudanças:

  • registro automático do plugin (não precisa nenhuma configuração no web.xml)
  • pasta padrão dos relatórios, sub-relatórios e imagens (WEB-INF/reports)
  • suporte a I18n
  • batch reports
  • inclusão de parâmetros via result
  • escolha do formato de exportação pelo header Accept (_format)

entre outros…

heheeh
blza baixei o exemplo novamente … agora consegui,
obrigado pela atenção

:smiley:

bass, poderia passar o /br/com/empresa/relatorios/relatorio1.jasper .jasper para eu dar uma olhada como fica o jasper desse projeto, porque ainda nao estou entendendo como funciona a estrutura que deve ficar para implementar isso.