Problemas ao gerar relatórios com JasperReports

08/10/2017

0

Olá pessoal tudo bem?.

Estou tendo problemas no momento de gerar relatório com o jasper, ele está me dando o seguinte erro Exception in thread "main" java.lang.NullPointerException, e o Maven me retorna este erro Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (default-cli) on project RelatoriosComJasper: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

Estou usando o netBeans, já baixei todas as dependências do jasper.

Código da classe PessoasJasper
public class PessoasJasper {
    public static void main(String[] args) throws ClassNotFoundException, SQLException, JRException {
        
        String nomeDriveMysql="com.mysql.jdbc.Driver";
        String nomeUser = "root";
        String url =  "jdbc:mysql://localhost:3306/jasperreports?useSSL=false";
        String senha = "123456";
        
        try {
            Connection cx;
             Class.forName(nomeDriveMysql);
			 cx = DriverManager.getConnection(url,nomeUser,senha);
                         
			 InputStream inp = PessoasJasper.class.getResourceAsStream("Pessoas.jasper");
                         
	            Map<String,Object> parametros = new LinkedHashMap<>();
                    
	            JasperPrint jp= JasperFillManager.fillReport(inp,parametros,cx);
	            JRExporter exportar = new JRPdfExporter();
                    System.out.println("Conectando");
	            exportar.setParameter(JRExporterParameter.JASPER_PRINT,jp);
	            exportar.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "Relatorio pessoas.PDF");
	            System.out.println("Gerando PDF");
	            exportar.exportReport();
	            System.out.println("Feito");
            
        } catch (ClassNotFoundException | SQLException | JRException e) {
            JOptionPane.showMessageDialog(null,"Erro"+e);
        }
       
	
        
    }
}




Código do pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.CursoDevMedia</groupId>
    <artifactId>RelatoriosComJasper</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        
    </properties>
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
  		<artifactId>mysql-connector-java</artifactId>
  		<version>5.1.43</version>
        </dependency>
        
        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports</artifactId>
            <version>6.2.1</version>
    </dependency>
    </dependencies>
</project>


Me ajudem estou perdido kkkkkkkkkkkkkkk
João Lima

João Lima

Responder

Posts

11/10/2017

João Lima

Eae pessoal.
Já que ninguém respondeu o meu tópico(FOREVER ALONE =[) me dando uma ideia do que poderia ser esse erro, tive que desbravar os confins da internet para achar a solução kkkkkkkkk.
Bom o problema era relativamente simples de se resolver. como mostra o erro o objeto estava apontando para algum lugar nulo e este lugar era justamente InputStream inp = PessoasJasper.class.getResourceAsStream("Pessoas.jasper");, ou seja, ele não estava achando esse caminho.
Então eu resolvi da seguinte maneira
 File arquivo = new File("C:\\\\Users\\\\JRLIMA\\\\Documents\\\\NetBeansProjects\\\\Relatorio\\\\src\\\\main\\\\java\\\\devmedia\\\\relatorio\\\\Pessoas.jrxml");
             cx = DriverManager.getConnection(url,nomeUser,senha);
        InputStream relatorioCompilado = new FileInputStream(arquivo);
            
        ByteArrayOutputStream saidaRelatorioCompilado = new ByteArrayOutputStream();


Passei o caminho completo para a classe FILE e depois joguei o meu arquivo na classe FILEINPUTSTREAM e com isso aconteceu a magica e deu certo.
Fica ae o registro para caso alguém tiver com o mesmo problema, pode ser que isso resolva.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar