Problema na passagem de parametros complexos no Jasper Plugin
28/07/2011 10:03
0
Fazendo alguns testes usando a ultima versão do jasper plugin (1.2.1) junto com o grails 1.3.7, ao invocar um relatorio usando o controller do jasper plugin e passando inputstream(stream de uma imagem) como parametro para esse relatório, em algum momento ele converte esse inputstream para string, causando um erro de tipo do parametro incompatível. Eu depurei até o momento que ele instancia o objeto que representa o relatorio a ser gerado e o os parametros estavam com tipo certo. Em versões anteriores deste plugin acontecia a mesma coisa. Acredito que exista uma falha no grails, que em algum momento ele pega o params e faz um cast para algo fazendo com que objetos dentro do params sejam convertidos para String. Alguém já passou por isso? já conseguiu resolver?
Tags: jasper, parametro, erro, string, stream


0
Oi Igor,

nunca trabalhei com este plugin, mas de cara te digo uma coisa: o Grails nunca faz cast do que se encontra em um mapa.

Se são parametros vindo da view para o seu controlador, os dados sempre são do tipo String.
Se é um map que sai do seu controlador e é enviado para outra ponta (o plugin por exemplo, ou mesmo uma view que é o caso padrão), os tipos não são convertidos, mas sim mandados exatamente como foram incluidos no mapa.

Neste seu caso, o que pode estar rolando é o seguinte: a imagem é um atributo do relatório, certo? Neste caso, será que o valor do atributo não deveria ser o array de bytes que compõem a imagem ao invés do InputStream? É um chute, mas se bobear, é exatamente isto.

Algo que ajuda pra daná nos problemas com o plugin (minha experiência real é com o Jasper) é dar uma boa lida na documentação oficial. 90% dos meus problemas resolvi neste site: http://jasperforge.org


0
Entao alguma coisa acontece, que quando crio o relatorio usando direto o service do plugin ele funciona, mas quando eu chamo o controler do jasper para criar ele dá esse erro. Depois posto aqui a stack trace
28/07/2011 13:04


0
Oi Igor,

Você está chamando os relatórios através da tag do plugin ou por uma classe java?

Posta o código da chamada e o erro, por favor.


0
quando o erro ocorre é sempre usando o chain dentro de uma action de um controller meu para o controller do jasper, ou através da tag do plugin do jasper, mas quando eu chamo usando o jasperService direto passando as classes que ele usa, o relatório gera corretamente.
29/07/2011 14:34


0
Só pra finalizar, eu resolvi o problema usando a solucao que postei nessa pergunta aqui

Plugin Jasper Report
02/12/2011 11:21



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto