Erro ao colocar imagem no ireport na web [RESOLVIDO]

Olá pessoal!

Estou começando agora a utilizar o ireport e estou com um problema. Tenho uma aplicação onde esta funcionando tudo direito junco com o ireport, quando coloco minha aplicação na web ele da um erro, dizendo que não achou a imagem que meu relatorio tem. Pesquesei em alguns lugares e vi que tem que passar essa imagem por parâmetro para o ireport, mas não consegui entender muito bem. alguem pode me dar uma ajuda?

Eu tenho uma pasta dentro de WebContent camada imagens onde está minha imagem chamada logo.

Desde já agradeço pela ajuda de todos!!!

normalmente quando a imagem eh dinamica, passa-se o endereco dela por parametro, agora quando ela eh fixa basta vc colocar o endereco correto dela.

Olá amigo!!!

Mas como faço isso?

fiz assim no meu MB:

[quote] String logoStudio = FacesContext.getCurrentInstance().getExternalContext().getRealPath(“images/Studio.png”);
parameters.put(“logoStudio”, logoStudio);[/quote]

imagem estática na pasta images,no ireport cria um PARAMETERS ($P[logoStudio}) na onde tem a image.

bom quando a imagem é estatica ae inserir a imagem ele ja pede o endereço, mas normalmente o endereco de desenvolvimento nao eh o mesmo do uso final, entao vc vai nas propriedades da imagem e no ImageExpression coloca o endereco que ela vai estar em producao antes de compilar, ae sim funciona de boa.

agora se vc quiser passar por parametro, no mesmo ImageExpression vc coloca a tag do parametro lah, exemplo:

se o parametro chama caminho_imagem vc vai colocar lah $P{caminho_imagem}

entendeu?

Olá amigo eu entendi sim, mas como faço pra saber o endereço real da minha aplicação?

Eu tenho que colocar o ip onde minha aplicação esta hospedada?

nao, normalmente sua aplicacao vai ter varios diretorios, entao basta vc passar algo do tipo:

“/imagens/sua_image.jpg”

facil facil

Olá amigo continua dando erro!

eu fiz de duas formas:

A primeira, coloque minha imagens no ireport e em propriedades na aba image Expression coloque “/imagens/logo.jpg” e deu um erro :

Erro ao gerar o relatório: net.sf.jasperreports.engine.JRException: Byte data not found at location : /imagens/logo.jpg 

A segunda tentativa coloque na aba image Expression como $P{logo} e no meu servelet coloque da seguinte forma:


parametros.put("logo", "/imagens/logo.jpg");

e deu outro erro:

Erro ao gerar o relatório: net.sf.jasperreports.engine.JRException: Incompatible java.lang.String value assigned to parameter logo in the RelatorioFatura dataset.

o que estou fazendo de errado?

Alguem pode me ajudar!

Eu faço assim:

ServletContext ctx = (ServletContext) FacesContext
			.getCurrentInstance().getExternalContext().getContext();

File f = new File(ctx.getRealPath("/imagens/imagem.jpg"));
			BufferedImage logo = ImageIO.read(f);
			parameters.put("logo", logo);

No caso,tenho um diretório ‘imagens’ criado dentro do WebContent.

No Ireport vc cria um parametro ‘logo’ do tipo java.awt.Image

Bom dia!

Em “Expression class” tente setar a propriedade para “java.io.File”.

Att.

CONSEGUI!!!
Muito obrigada pela atenção de vcs!!!

Ficou assim:
Eu nao estava passando o caminho do pacote,tive que tirar a imagem da pasta e jogar dentro do meu pacote.

HashMap parameters = new HashMap();
Image logo = new ImageIcon(getClass().getResource("/modelo/logo.jpg")).getImage();
parameters.put(“logo”, logo);

No ireport eu criei um parametro do tipo java.awt.Image e arrastei o componente da imagem onde coloquei no campo imagem expression=$P{logo} do tipo java.awt.Image.

1 curtida