Tomcat - JasperViewer = Shutdown

eu to com um problema de relatorio usando o jasperreport e o tomcat

eu monto minha consulta sql a partir do JSP, onde os itens selecionados montam o WHERE da consulta. tudo certo até ai.

o JasperViewer tambem exibe tudo certo o relatorio. e o tomcat está rodando nesse momento.

quando eu fecho o relatorio, o tomcat dá um shutdown. é esse o problema.

aparece a mensagem no console “Stopping service Tomcat-Standalone”

alguem sabe o que pode ser isso?

eu encontrei um cara com esse mesmo problema meu acima. mas nao tinha solucao. a solucao era esquecer de exibir o relatorio pelo JasperViewer e salvar logo em html, pdf…

por enquanto vou salvar apenas em pdf e nao ficar exibindo o relatorio pelo viewer

http://www.mail-archive.com/tomcat-user@jakarta.apache.org/msg152448.html

Olá racelike,

Fiquei interessado nessa sua dúvida porque achei um pouco estranho vc trabalhar com JasperViewer e Tomcat, visto que pra mim, o primeiro utiliza a GUI do Java e o segundo é pra web…

Gostaria que vc explicasse um pouco mais sobre isso, pois também trabalho com jasper (utilizando swing) e tomcat (para atualizar via JWS).

A respeito de fechar o tomcat, eu já tive uns probleminhas que quando fechava o JasperViewer, fechava a aplicação, não me recordo muito bem o que era, mas verifica as linhas:

JasperViewer jasperViewer = new JasperViewer(jasperPrint, false); ... jasperViewer.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);

[]'s

Robert Mauro Lang

valeu por responder.

eu ja tentei exatamente fazer esse dispose, foi quase do mesmo jeito que voce colocou. mas eu tive um erro pq tentei fazer apenas:

JasperViewer.DISPOSE_ON_CLOSE;

e deu erro de sintaxe: Syntax error, insert “AssignmentOperator ArrayInitializer” to complete Expression

mas eu vou tentar dessa sua maneira e vou colocar aqui o que aconteceu.

o lance do tomcat estar rodando é que a aplicacao é toda baseada em JSP. entao precisa ficar rodando. e entao clico em um botao numa certa tela JSP, dai esse botao aciona o metodo na classe Action e eu pego no ActionForm os gets() que tem algum valor, e monto minha clausula Where da consulta dentro da classe action pegando esses valores dos gets().

com o sql pronto, eu passo ele como parametro para o arquivo .jasper (na verdade nao sei se é passado pro .jasper ou pro .jrxml, mas como o .jasper é a compilacao do .jrxml, entao deve ser passado pro .jasper)

e por fim o relatorio é exibido com essa linha:

JasperViewer.viewReport(dir+“classic2.jrprint”, false);

[color=“darkblue”]qual seria a diferenca de exibir da maneira que voce colocou:

JasperViewer jasperViewer = new JasperViewer(jasperPrint, false);
jasperViewer.show(); //teria que ter essa linha tambem né no seu codigo[/color]
valeu ai mais uma vez

[quote=“racelike”]valeu por responder.

eu ja tentei exatamente fazer esse dispose, foi quase do mesmo jeito que voce colocou. mas eu tive um erro pq tentei fazer apenas:

JasperViewer.DISPOSE_ON_CLOSE;
[/quote]

Isso é uma constante da classe e não um método

[quote=“racelike”]e deu erro de sintaxe: Syntax error, insert “AssignmentOperator ArrayInitializer” to complete Expression

mas eu vou tentar dessa sua maneira e vou colocar aqui o que aconteceu.

o lance do tomcat estar rodando é que a aplicacao é toda baseada em JSP. entao precisa ficar rodando. e entao clico em um botao numa certa tela JSP, dai esse botao aciona o metodo na classe Action e eu pego no ActionForm os gets() que tem algum valor, e monto minha clausula Where da consulta dentro da classe action pegando esses valores dos gets().

com o sql pronto, eu passo ele como parametro para o arquivo .jasper (na verdade nao sei se é passado pro .jasper ou pro .jrxml, mas como o .jasper é a compilacao do .jrxml, entao deve ser passado pro .jasper)[/quote]

Não necessariamente, vc pode usar o .jasper, o .jrxml ou mesmo criar tudo dinamicamente em tempo de execução.

[quote=“racelike”]e por fim o relatorio é exibido com essa linha:

JasperViewer.viewReport(dir+“classic2.jrprint”, false);
[/quote]

Eu não sabia que podia ser usado dessa forma dentro do tomcat, tb faço assim no swing.
Devo estar meio esquecido dessas coisas, usei muito pouco.

[quote=“racelike”]
[color=“darkblue”]qual seria a diferenca de exibir da maneira que voce colocou:

JasperViewer jasperViewer = new JasperViewer(jasperPrint, false);
jasperViewer.show(); //teria que ter essa linha tambem né no seu codigo[/color]
valeu ai mais uma vez[/quote]

Os … (pontinhos) que eu coloquei identificam que tem mais coisas alí no meio, como o show que você citou.

[]'s

Robert Mauro Lang

infelizmente continua fechando o tomcat quando fecha o relatorio. testei pra visualizar dessa maneira que voce me disse acima, mas nao deu ainda.

consegui acabar com o fechamento do tomcat quando fecha o relatorio. usei outra maneira de carregar o relatorio

eu tava usando essa:


[color=“blue”]HashMap parameters = new HashMap();
parameters.put(“sql”,sqlc);
JasperFillManager.fillReportToFile(dir+“RelatorioEstatistica.jasper”, parameters, con);//jrRS[/color][color=“darkblue”]
JasperViewer.viewReport(dir+“RelatorioEstatistica.jrprint”, false);
OU
JasperViewer jv = new JasperViewer(dir+“RelatorioEstatistica.jrprint”,false);
jv.show();
jv.setDefaultCloseOperation(jv.DISPOSE_ON_CLOSE);[/color]

mas ai usei essa e acabou com o shutdown do tomcat

[color=“green”]JasperDesign design = JasperManager.loadXmlDesign(dir+“RelatorioEstatistica.jrxml”);
JasperReport jr = JasperManager.compileReport(design);
HashMap parameters = new HashMap();
parameters.put(“sql”,sqlc);
JasperPrint p = JasperManager.fillReport(jr,parameters,con);
JasperViewer jv = new JasperViewer(p,false);
jv.show();
jv.setDefaultCloseOperation(jv.DISPOSE_ON_CLOSE);[/color]

não sei explicar pq no de cima fecha o tomcat e o de baixo nao

o jasper viewer tem aquele botao salvar, e nele voce pode optar em qual formato vai salvar.

mas algo aconteceu que nao tem mais a opcao de salvar nesses outros formatos, a nao ser a unica opcao que tem, que é salvar em .jrprint

o que eu alterei no .jrxml foi apenas que eu criei uma font report, ou seja, criei um padrao pras fontes (tirando aquele pdf encoding). e ai no visualizador nao tinha mais a opcao de salvar nos outros formatos

alguem sabe o que pode ser?