Pessoal, estou desenvolvendo uma aplicação com NetBenas e iReport. No entando, não consigo fazer o relatório aparecer na tela. O criei no jasper, na aplicação própria e tentei adicionar os jars no netBeans pra rodar. Nada. Tentei, então, baixar o plugin do iReport para o NetBeans e nada também… Não sei mais o que fazer. Vou colocar abaixo as classes.
import java.awt.BorderLayout;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Map;
import javax.swing.JFrame;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.swing.JRViewer;
public class ReportUtils {
public static void openReport(
String titulo,
InputStream inputStream,
Map parametros,
Connection conexao ) throws JRException {
JasperPrint print = JasperFillManager.fillReport(
inputStream, parametros, conexao );
viewReportFrame( titulo, print );
}
public static void openReport(
String titulo,
InputStream inputStream,
Map parametros,
JRDataSource dataSource ) throws JRException {
JasperPrint print = JasperFillManager.fillReport(
inputStream, parametros, dataSource );
viewReportFrame( titulo, print );
}
private static void viewReportFrame( String titulo, JasperPrint print ) {
JRViewer viewer = new JRViewer( print );
JFrame frameRelatorio = new JFrame( titulo );
frameRelatorio.add( viewer, BorderLayout.CENTER );
frameRelatorio.setSize( 500, 500 );
frameRelatorio.setExtendedState( JFrame.MAXIMIZED_BOTH );
frameRelatorio.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
frameRelatorio.setVisible( true );
}
}
import java.io.InputStream;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import model.MySQLDAO;
import reports.util.ReportUtils;
public class Main {
public static void main(String[] args) {
try {
new Main().abrirRelatorioClientes();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void abrirRelatorioClientes() throws SQLException {
InputStream inputStream = this.getClass().getResourceAsStream("C:\\Users\\Fernando\\sgbbDevelop\\SGBB_CEM\\ireport5.0\\teste.jasper");
Map parametros = new HashMap();
try {
ReportUtils.openReport( "Clientes", inputStream, parametros,
MySQLDAO.getConnection() );
} catch ( JRException exc ) {
exc.printStackTrace();
}
}
}
Erro:
Exception in thread "main" java.lang.NullPointerException
at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2289)
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2302)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2773)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:798)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:298)
at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.<init>(ContextClassLoaderObjectInputStream.java:58)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:244)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:229)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:405)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:824)
at reports.util.ReportUtils.openReport(ReportUtils.java:41)
at view.login.TLogin.abrirRelatorioClientes(TLogin.java:204)
at view.login.TLogin.main(TLogin.java:237)
E é isso. Já tentei de tudo e como não sou muito experiente com java e é a primeira vez que tento usar o iReports, estou perdido…