Headless Exception com o JasperViewer

2 respostas
S

Oi,

Estou tendo um problema na minha aplicação Web. Quando tento chamar o JasperViewer para mostar o relatório ele lança a excepção

java.awt.HeadlessException
	at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:197)
	at java.awt.Window.<init>(Window.java:534)
	at java.awt.Frame.<init>(Frame.java:420)
	at java.awt.Frame.<init>(Frame.java:385)
	at javax.swing.JFrame.<init>(JFrame.java:180)
	at net.sf.jasperreports.view.JasperViewer.<init>(JasperViewer.java:264)
	at net.sf.jasperreports.view.JasperViewer.<init>(JasperViewer.java:194)
	at net.sf.jasperreports.view.JasperViewer.<init>(JasperViewer.java:139)
	at net.sf.jasperreports.view.JasperViewer.<init>(JasperViewer.java:101)
	at interface_model.ConsentimentoDAO.geraRelatorio(ConsentimentoDAO.java:158)
	at controller.ConsentimentoController.geraRelatorio(ConsentimentoController.java:71)

Estou usando o Extjs4 e o Vraptor, fazendo uma request para o controller que depois chama o método no DAO para gerar o relatório. No ConsentimentoDAO tenho o seguinte:

public boolean geraRelatorio(){
            try{
            String Report = "D:\\Documents and Settings\\letrass\\My Documents\\NetBeansProjects\\ESIGIC\\src\\java\\Reports\\report1.jrxml";
            JasperReport jasper_report = JasperCompileManager.compileReport(Report);
            JasperPrint jasper_print = JasperFillManager.fillReport(jasper_report, null, connection);
            JasperViewer view = new JasperViewer(jasper_print,false);
            view.setTitle("Exemplo");
            view.setVisible(true);
            return true;
            }
            catch(Exception ex){
                ex.printStackTrace();
                return false;
            }
        }

Não estou a perceber o que está errado, é das primeiras vezes que estou a usar esta ferramenta de geração de relatórios :roll:

2 Respostas

A

Tenta rodar teu servidor com a opção -Djava.awt.headless=true.

Para mais informações sobre a HeadlessException, leia isto.

S

Obrigado. Já tentei isso mas não resultou. Mas em vez de apresentar o relatório no Viewer eu agora estou a tentar enviar para o browser o pedido de download do relatório. Estou usando o código postado por um colega aqui do forúm mas não está a resultar. Ou melhor, ele corre o método na boa e não dá erro nem na consola do chrome mas depois não envia nada para o browser.

Criado 8 de agosto de 2012
Ultima resposta 9 de ago. de 2012
Respostas 2
Participantes 2