Erro com Ireport 3.7.4 [RESOLVIDO]

14 respostas
A

Bom dia!!!

Troquei a versão do Ireport, mudei todos os jars, porém o netbeans me lança o seguinte erro:
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.

Um arquivo pdf é gerado, porém quando vou abrir o arquivo aparece a seguinte mensagem de erro:

[img]http://www.guj.com.br/upload/2010/9/10/913b384083fad76a1a7795157ae314ee_51671.gif__thumb[/img]

Abaixo o código:
public void doCartaCliente(Field lote, Field produtor, Field fazenda) {
        Connection conn = null;
        try {
            System.out.println("Gerando relatório...");

            //cria a conexão com o banco de dados
            conn = Conexao.getConnection();

            System.out.println(fazenda.getNome());
            System.out.println(lote.getId());
            System.out.println(produtor.getId());

            //Passando parâmetros para o HashMap
            Map parameterMap = new HashMap<String, Object>();
            parameterMap.put("fazenda", fazenda.getNome());
            parameterMap.put("idlote", lote.getId());
            parameterMap.put("idprodutor", produtor.getId());

            String arquivo = "C:/Arquivos de Programas/Unifertil/reports/cartaCliente.jasper";
            
            JasperPrint jp = JasperFillManager.fillReport(arquivo,
                    parameterMap, conn);

            File file = new File(System.getenv("APPDATA") + "/" + FOLDERNAME);
            if (!(file.exists()) || !(file.isDirectory())) {
                file.mkdir();
            }

            JasperExportManager.exportReportToHtmlFile(
                    jp, System.getenv("APPDATA") + "/" + FOLDERNAME + "/" + "cartaCliente_" + fazenda.getNome() + ".pdf");
            File pdf = new File(System.getenv("APPDATA") + "/" + FOLDERNAME + "/" + "cartaCliente_" + fazenda.getNome() + ".pdf");
            Desktop.getDesktop().open(pdf);



        } catch (Exception ex) {
            new FrameErro("Erro na geração de Etiquetas", ex);
            ex.printStackTrace();
        }
    }

Alguém poderia me ajudar?

Grata desde já!

14 Respostas

P

olá APaulinha,

geralmente isso:

é configuração do log4j

vê se ajuda:
http://www.guj.com.br/posts/list/200228.java
http://javafree.uol.com.br/viewtopic.jbb?p=189898&page=1

qualquer coisa posta a exception inteira.

A

Obrigada pela atenção pedruhenrik!

Dei uma olhada nos tópicos que me indicou e não deu certo! :frowning:

Quando eu tiro o jar do log4j nenhum erro é retornado, o pdf é gerado mas sem nenhuma informação.

E com o jar o erro apresentado é o que já postei também. Não há mais nenhuma linha de erro!

P

opa magina, heheh

q coisa ñ tem mais nada no e.printstracktrace(); ??? rsrs

se vc tentar abrir o relatório direto pelo ireport da certo?

ahh, o arquivo .pdf q ele salva, o que acontece se vc tentar abrir direto pelo leitor de .pdf???

apenas a nível de teste fiz uma atualização no seu código, se tiver como testar e vê se o relatório aparece…heheh

import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.view.JasperViewer;

public void doCartaCliente(Field lote, Field produtor, Field fazenda) {
        Connection conn = null;
        try {
            System.out.println("Gerando relatório...");

            //cria a conexão com o banco de dados
            conn = Conexao.getConnection();

            System.out.println(fazenda.getNome());
            System.out.println(lote.getId());
            System.out.println(produtor.getId());

            //Passando parâmetros para o HashMap
            Map parameterMap = new HashMap&lt;String, Object&gt;();
            parameterMap.put("fazenda", fazenda.getNome());
            parameterMap.put("idlote", lote.getId());
            parameterMap.put("idprodutor", produtor.getId());

            String arquivo = "C:/Arquivos de Programas/Unifertil/reports/cartaCliente.jasper";
            
            JasperPrint jp = JasperFillManager.fillReport(arquivo,
                    parameterMap, conn);

            File file = new File(System.getenv("APPDATA") + "/" + FOLDERNAME);
            if (!(file.exists()) || !(file.isDirectory())) {
                file.mkdir();
            }

            JasperExportManager.exportReportToHtmlFile(
                    jp, System.getenv("APPDATA") + "/" + FOLDERNAME + "/" + "cartaCliente_" + fazenda.getNome() + ".pdf");
            File pdf = new File(System.getenv("APPDATA") + "/" + FOLDERNAME + "/" + "cartaCliente_" + fazenda.getNome() + ".pdf");
            
            //apenas a nivel de teste pedru
            JasperExportManager.exportReportToPdfFile(jp,"c:/pdf.pdf");

            JasperViewer view = new JasperViewer(jp, false);

            view.setExtendedState(JasperViewer.MAXIMIZED_BOTH);
            view.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);

            view.setVisible(true);
            //acaba o teste pedru

        } catch (Exception ex) {
            new FrameErro("Erro na geração de Etiquetas", ex);
            ex.printStackTrace();
        }
    }

espero ter ajudado e boa sorte! ^^

A

.

A

Não tem mais nada…

Sim!!!

No diretório onde é gerado o pdf é criado esses arquivos em uma nova pasta com o mesmo nome do arquivo pdf:

A

Seu código deu certo!!!

:stuck_out_tongue:

Muito Obrigada!!!

P

eita…rsrs

vc conseguiu testar com aquela alteração que eu fiz?

tenta gerar o arquivo só q sem espaços no nome, só a nível de superstição haha.

A

Sim!!! Só mudei o diretorio de onde estava salvando o relatório.
Porém a mensagem de erro ainda aparece. Só que o relatório abre.

P

então,

na verdade isso:

não é um erro, é só um warning pq talvez deve ter algo q ñ esta configurado no log4j.xml
e se fosse um erro tb o frame abaixo seria executado né? algo q acho q ñ esta sendo executado.

pelo q eu entendi o sistema é Desktop?

só confere esse trecho:

acho q ele só é valido p/ jre 1.6

e esse aqui:

//apenas a nivel de teste pedru  
JasperExportManager.exportReportToPdfFile(jp,"c:/pdf.pdf");  
JasperViewer view = new JasperViewer(jp, false);  
view.setExtendedState(JasperViewer.MAXIMIZED_BOTH);  
view.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);
view.setVisible(true);
//acaba o teste pedru

é um utilitario de visualização do ireport, eu uso ele mais a p/ testar os relatórios, não sei bem as vantagens e desvatagens de utilizar ele.

ajudou em algo? ehehe

boa sorte! ^^

A

Valeu pela ajuda pedruhenrik!!!

Bom… Tirei o jar log4j da minha aplicação e tudo continuou funcionando perfeitamente e sem a Warning.

Muito Obrigada! :wink:

P

uhuuu!

parabéns!

heheh

sucesso é nosso! ^^

até

C
estou com dificuldade ao utilizar o ireport 

quando executo o programa aparece esse erro:

log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).

log4j:WARN Please initialize the log4j system properly.

Exception in thread AWT-EventQueue-0 java.lang.NoSuchMethodError: net.sf.jasperreports.engine.component.DefaultComponentManager.setDesignConverter(Lnet/sf/jasperreports/engine/component/ComponentDesignConverter;)V

at net.sf.jasperreports.components.ComponentsExtensionsRegistryFactory.(ComponentsExtensionsRegistryFactory.java:103)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:247)

at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:161)

at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:119)

at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:57)

at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.instantiateRegistry(DefaultExtensionsRegistry.java:211)

at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:188)

at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:141)

at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getRegistries(DefaultExtensionsRegistry.java:127)

at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:104)

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

at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:175)

at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:77)

at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:59)

at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147)

at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:57)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)

at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:188)

at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:94)

at relatorios.util.MostraRelatorio.abreRelatorio(MostraRelatorio.java:75)

at relatorios.util.MostraRelatorio.access$000(MostraRelatorio.java:22)

at relatorios.util.MostraRelatorio$1.actionPerformed(MostraRelatorio.java:96)

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

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

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

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

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
L

cara,
1º crie um post seu mesmo e sim discuta dentro dele o que esta ocorrendo no seu programa…

olhe

http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor/5

abrxx

C

Tive o mesmo problema da Paulinha e o hibernate não deixava persistir os dados, tirei o jar Log4J da biblioteca e advinhem… funcionou perfeitamente!

Criado 10 de setembro de 2010
Ultima resposta 16 de jan. de 2013
Respostas 14
Participantes 5