[RESOLVIDO] Erro ao chamar um relatorio jasper

7 respostas
java
pellegrini2106

Ola galera do java tenho um probleminha e peço a ajuda de vocês.

E o seguinte tenho uma classe que chama o relatório com extensão .jasper.

package gerarRelatorio;

import Conexao.Conectar;

import implementar.IGerarRelatorioEspecialidade;

import java.net.URL;

import java.util.HashMap;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.JasperReport;

import net.sf.jasperreports.engine.util.JRLoader;

import net.sf.jasperreports.view.JasperViewer;

public class relatorioEspecialidade implements IGerarRelatorioEspecialidade {

private Conectar cnx;

public relatorioEspecialidade() {
    this.cnx = new Conectar();
}   

@Override
public void gerarRelatorioEspecialidade() {
   try {
        URL arquivo = getClass().getResource("..\\RelatorioGerado\\RelatorioEspecialidade.jasper");
        HashMap map = new HashMap();    
    
   JasperReport  jr = (JasperReport) JRLoader.loadObject(arquivo); // **Nesta Linha que Está o Erro o JasperReport Não Carrega o JRLoader.LoadObject(Arquivo):**

         JasperPrint jp = JasperFillManager.fillReport(jr, map, this.cnx.getConnection());
        JasperViewer jv = new JasperViewer(jp,false);
        jv.setDefaultCloseOperation(JasperViewer.DO_NOTHING_ON_CLOSE);
        jv.setVisible(true);
        jv.toFront();         
    } catch (JRException ex) {
        throw new RuntimeException(ex);
    } 
}

}

só que na hora que chamo ele, ele emite este erro:

run:

Exception in thread AWT-EventQueue-0 java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

at net.sf.jasperreports.engine.util.JRLoader.(JRLoader.java:81)

at gerarRelatorio.relatorioEspecialidade.gerarRelatorioEspecialidade(relatorioEspecialidade.java:27)

at visaoEspecialidade.visaoCadEspecialidade.itmRelEspActionPerformed(visaoCadEspecialidade.java:360)

at visaoEspecialidade.visaoCadEspecialidade.access$800(visaoCadEspecialidade.java:15)

at visaoEspecialidade.visaoCadEspecialidade$10.actionPerformed(visaoCadEspecialidade.java:227)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.AbstractButton.doClick(AbstractButton.java:376)

at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)

at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)

at java.awt.Component.processMouseEvent(Component.java:6533)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)

at java.awt.Component.processEvent(Component.java:6298)

at java.awt.Container.processEvent(Container.java:2236)

at java.awt.Component.dispatchEventImpl(Component.java:4889)

at java.awt.Container.dispatchEventImpl(Container.java:2294)

at java.awt.Component.dispatchEvent(Component.java:4711)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)

at java.awt.Container.dispatchEventImpl(Container.java:2280)

at java.awt.Window.dispatchEventImpl(Window.java:2746)

at java.awt.Component.dispatchEvent(Component.java:4711)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)

at java.awt.EventQueue.access$500(EventQueue.java:97)

at java.awt.EventQueue$3.run(EventQueue.java:709)

at java.awt.EventQueue$3.run(EventQueue.java:703)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)

at java.awt.EventQueue$4.run(EventQueue.java:731)

at java.awt.EventQueue$4.run(EventQueue.java:729)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

 43 more

7 Respostas

Mike

Para se utilizar o Jasper é necessário alguns outros jars na aplicação.

Sempre que der essa exceção java.lang.NoClassDefFoundError, é pq esta faltando alguma classe e no seu caso esta faltando a classe LogFactory do pacote org.apache.commons.logging

https://mvnrepository.com/artifact/commons-logging/commons-logging/1.2

pellegrini2106

Poxa Obrigadaço grande Mike!!! abraços

pellegrini2106

Deu o mesmo erro Mike !!!

Mike

Colocou o jar no projeto? Se sim, onde?

pellegrini2106

Mike eu coloco a biblioteca do jar no modules do Netbeans onde estão a maioria do jar

Villagram

Boa noite amigo.

Rapaz!!! Essa Exception não vai a última que vc vai ver não…kkkkkkkkk, você precisa colocar uns 123 jars para o jasperReport funcionar certinho. Quando você baixa o Ireport 5.6 dentro da pasta Ireport/ireport/modules/ext/… tem todos os jars necessários para que o projeto funcione correta, você precisa adicionar todos esses jars ao projeto.

pellegrini2106

Obrigado pela dica VillaGram!!! já resolvi amigão!!!

Como você falou fui no programa IReport 5.6 onde existe uma pasta c:\Program Files(x86) \ JasperSoft \ IReport-5.6.0 \ ireport \ modules \ ext .
Nesta pasta contem varias bibliotecas JAR necessárias para que o relatório rode corretamente.
Copie ela e criei dentro da Pasta do Programa NetBeans - arquivos de programa \ netbeans 8.2 \ ide \ modules uma pasta para receber os jar extraído do IReport e depois e só criar sua biblioteca no netbeans.

Ok deixei essa pequena explicação para que outros amigos possam tirar suas duvidas!!!

Criado 4 de janeiro de 2019
Ultima resposta 5 de jan. de 2019
Respostas 7
Participantes 3