Estou com dificuldades em identificar onde esta o erro. Sou iniciante em java e gostaria da ajuda de vocês.
Erro abaixo:
java.lang.NullPointerException
at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2781)
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2797)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3274)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:934)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:396)
at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.<init>(ContextClassLoaderObjectInputStream.java:58)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:248)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:233)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:647)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:971)
at Dao.DAORelatorios.gerarRelatorioCarteiraMembro(DAORelatorios.java:158)
at Controller.ControllerCredencial.gerarRelatorioCarteiraMembroIndividual(ControllerCredencial.java:91)
at Visao.ViewCredencialMembros$9.run(ViewCredencialMembros.java:513)
CONSTRUÍDO COM SUCESSO (tempo total: 21 segundos)
Aqui é o metodo que gera o relatório:
public boolean gerarRelatorioCarteiraMembro(int pCodigoMembro) {
try {
this.conectar();
this.executarSQL("SELECT "
+ "empresa.codigo, "
+ "empresa.nome_fantasia, "
+ "empresa.endereco,"
+ "empresa.bairro, "
+ "empresa.cidade, "
+ "empresa.estado, "
+ "credencial.id, "
+ "credencial.nome, "
+ "credencial.funcao, "
+ "credencial.matricula, "
+ "credencial.nascionalidade,"
+ "credencial.naturalidade, "
+ "credencial.data_nascimento, "
+ "credencial.rg, "
+ "credencial.cpf, "
+ "credencial.estado_civil,"
+ "credencial.nome_pai, "
+ "credencial.nome_mae, "
+ "credencial.membro_desde, c"
+ "redencial.data_validade, "
+ "credencial.foto,"
+ "credencial.sexo, "
+ "credencial.endereco, "
+ "credencial.numero, "
+ "credencial.bairro, "
+ "credencial.cidade,"
+ "credencial.uf,"
+ "credencial.cep, "
+ "credencial.telefone, "
+ "credencial.celular, "
+ "credencial.email, "
+ "credencial.nivelescolar, "
+ "credencial.databatismo,"
+ "credencial.igrejadebatismo, "
+ "credencial.nomedopastor, "
+ "credencial.databatismoespiritosanto,"
+ "credencial.ano, "
+ "credencial.aceitopor,"
+ "credencial.id_empresa "
+ "FROM tbl_credencial credencial "
+ "INNER JOIN empresa empresa ON empresa.codigo = credencial.id_empresa WHERE credencial.id = '" + pCodigoMembro + "'");
JRResultSetDataSource jrRS = new JRResultSetDataSource(getResultSet());
// caminho do arquivo dentro dos pacotes
InputStream caminhoRelatorio = this.getClass().getClassLoader().getResourceAsStream("C:/SGIgrejas/src/Relatorios/relCredencialIndividual.jasper");
JasperPrint jasperPrint = JasperFillManager.fillReport(caminhoRelatorio, new HashMap(), jrRS);
String nomeArquivo = "/rel.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, nomeArquivo);
File file = new File(nomeArquivo);
try {
Desktop.getDesktop().open(file);
} catch (Exception e) {
JOptionPane.showConfirmDialog(null, e.getMessage());
}
file.deleteOnExit();
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage(), "Erro:", JOptionPane.ERROR_MESSAGE);
return false;
}
return true;
}
Aqui é button a onde chamo o relatório:
private void btnImprimirCredencialActionPerformed(java.awt.event.ActionEvent evt) {
//chamaRelatorioMembro();
try {
int linhaSelecionada = tabelaCredencialMembro.getSelectedRow();
// Verificamos se existe realmente alguma linha selecionada
if (linhaSelecionada < 0) {
JOptionPane.showMessageDialog(this, "Você deve selecionar um item na tabela antes de clicar no botão!", "ATENÇÃO", JOptionPane.WARNING_MESSAGE);
} else {
final AguardeGerandoRelatorio carregando = new AguardeGerandoRelatorio();
final ControllerCredencial controllerCredencial = new ControllerCredencial();
carregando.setVisible(true);
Thread t = new Thread() {
@Override
public void run() {
// imprimir clientes
controllerCredencial.gerarRelatorioCarteiraMembroIndividual((int) tabelaCredencialMembro.getValueAt(tabelaCredencialMembro.getSelectedRow(), 0));
carregando.dispose();
}
};
t.start();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, "Erro ao executar a impressão! " + e.getMessage());
}
}
Aguem me ajuda por favor.