olá pessoal estou tentando gerar um pdf, com dados vindo do banco de dados, o usuario entra no sistema faz o cadastro primeiro o sistema grava no banco as informações isso está ok no sistema, depois disso na mesma logic ele tem que gerar um arquivo pdf com esses dados gravados. mas está lançando essa exceção.
java.lang.NullPointerException
at net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:176)
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 java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readArray(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:88)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:515)
at br.com.unimedseguros.saude.reembolso.jasper.ReembolsoPDF.geraPDF(ReembolsoPDF.java:36)
at br.com.unimedseguros.saude.reembolso.jasper.ReembolsoPDF.addReembolso(ReembolsoPDF.java:24)
at br.com.unimedseguros.saude.reembolso.logic.ReembolsoLogic.gera(ReembolsoLogic.java:74)
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 org.vraptor.component.DefaultLogicMethod.execute(DefaultLogicMethod.java:117)
at org.vraptor.interceptor.ExecuteLogicInterceptor.intercept(ExecuteLogicInterceptor.java:37)
at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
at org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:131)
at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
at org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41)
at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
at org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:58)
at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
at br.com.unimedseguros.saude.reembolso.dao.DaoInterceptor.intercept(DaoInterceptor.java:14)
at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
at org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
at org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)
at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
at org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:90)
at org.vraptor.core.DefaultController.execute(DefaultController.java:42)
at org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
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:128)
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:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
essa é a classe que gera o pdf por arry de bytes
public class ReembolsoPDF {
private static final String CAMINHO_JASPER = "caminho";
private static final String JASPER = "arquivo.jasper";
Reembolso reembolso = null;
JasperPrint print = null;
public void addReembolso(Reembolso reembolso) {
this.reembolso = reembolso;
geraPDF();
}
private void geraPDF() {
ArrayList<Reembolso> reembolsos = new ArrayList<Reembolso>();
reembolsos.add(reembolso);
ReembolsoDataSource reembolsoDataSource = new ReembolsoDataSource(reembolsos);
HashMap parametros = null;
try {
print = JasperFillManager.fillReport(CAMINHO_JASPER + JASPER, null , reembolsoDataSource );
} catch (JRException e) {
e.printStackTrace();
}
}
public ByteArrayOutputStream writeToByteArray() {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
try {
JasperExportManager.exportReportToPdfStream(print, stream);
} catch (Exception e) {
e.printStackTrace();
}
return stream;
}
}