Pessoal fiz um relatório (meu 1º) no iReport e no cabeçalho dele coloquei uma imagem (logotipo) rodou blz. Adicionei o relatório na aplicação web na minha máquina (localhost) e tb rodou blz, então fui atualizar a aplicação no servidor e deu erro que não achava a imagem!!!
Nesta situação, onde o caminho da aplicação na minha máquina é diferente do caminho no servidor, como posso conciliar a imagem no relatório para que ela rode tanto local quanto no servidor sem ter que ficar mexendo toda hora no seu path ???
O path da imagem pode ser resolvido atraves de uma classe… ou seja… seu relatorio pode acessar classes da sua aplicação o qual pode resolver o path da imagem, por exemplo, digamos que sua imagem esteja dentro da pasta resource/images/logo.gif Vc entao ira usar uma classe que acessa sua imagem usando o getClass().getClassLoader()
Dessa forma vc pode retornar por parametro uma string contendo o valor absoluto de onde sua imagem esta !
Outra forma é vc retornar a propria imagem… essas transicoes sao um pouco complicadas… qualquer coisa eu posto o codigo depois.
Entendi, eu crio um parametro no relatório e depois no meu servlet eu pego e seto este parametro, mas ai tenho um dúvida, após criar o parametro no relatorio (iReport) como que faço pro local da imagem receber este parametro ??
No path da imagem vc coloca $P{LOGO} ae vc cria um parametro no seu relatorio chamado LOGO do tipo java.awt.Image
Ae é so vc passar a imagem por parametro… melhor que passar o path… pois o path será resolvido no seu servlet atraves do classLoader como esta no post anterior
Outra sugestão é criar um parâmetro do tipo String com o caminho para o arquivo. Nas propriedades do objeto do logotipo, adicione new File( $P{LOGO} ).
Esse parâmetro pode ser passado via Servlet, consultando uma base de dados ou uma variável estática (pode haver diversas implementações).
eu tentei passar o inputStream por parâmetro para a imagem , eu nao recebo mensagem de erro , o arquivo e gerado mas sem imagens , alguem tem alguma ideia de uma forma melhor pra passar imagens estáticas para um relatorio do ireport ?
HashMap parameters = new HashMap();
parameters.put("$P{logo}",pathImagem);
eu tentei isso (tb criei um parametro no ireport chamado logo do tipo java.awt.Image) e no meu relatório aparece null…
Olá pessoal,
preciso de uma ajudinha… é que já tentei de tudo e nada funciona!
É o seguinte, meu relatório funciona local só que quando vai pro servidor não funciona, não encontra o caminho da imagem. Já tentei passando a imagem via InputStream, já passei o caminho como String, já tentei pegando o caminho com getResource() e com getRealPath(). Tem algo que achei muito estranho, no servidor o getRealPath() vem null.
Tudo funciona local, mas no servidor nada! O servidor está em Unix e minha máquina é windows, o servidor é Weblogic na mesma versão do meu local. Será que pode ser alguma configuração no servidor? Alguém tem alguma suposição do que seja ou já passou por isso?