Duvida no uso iReport/Jasper com imagem

Olá,

fiz um relatório com imagem no cabeçalho e defini um endereço “c:\imagem\logo.jpg”
rodando no ambiente windows deu certo agora vou fazer o deploy no lunix …

E a imagem não aparece vi alguns duvidas no forum com o uso InputStream

mas não sei como passar para o relatório via parametro da localização da imagem no contexto

da aplicação …

Se alguém puder me ajudar …agradeceria…abs

--como estou gerando pdf via jasper

                        session = (Session) dbmanager.getDelegate();
			con = session.connection();
			
			String jasper = request.getContextPath()+ "/report/report/"+nomeRelatorio;   
			String host = "http://" + request.getServerName() + ":" + request.getServerPort();   
			URL jasperURL        = new URL(host + jasper);
			
  			response.setContentType(CONTENT_TYPE_PDF);   
  			byte[] bytes = JasperRunManager.runReportToPdf(jasperURL.openStream(), parameters, con);   
  			if (bytes != null) {   
		             ops = response.getOutputStream();   
		             ops.write(bytes);   
		             ops.flush();
		 	         ops.close();
		 			
		     }   

Olá…
Você já leu esse aqui:
http://www.guj.com.br/posts/list/103670.java

[]'s
JL

obrigado pelo retorno …

achei bom o forum …

mas minha duvida continua …no iReport defini um campo como image e a propriedade dessa imagem esta inputStream …como no java

passo essa informação do caminho pois o caminho já tenho peguei pela action do Struts …

    --como estou gerando pdf via jasper  
      nomeRelatorio="ser001.jasper";
                            session = (Session) dbmanager.getDelegate();  
                con = session.connection();  
                  Map parameters = HashMAp();
                  parameters.put ("o que coloco aqui ",caminhoImagem);//como tenho que passar para o relatório entender ?????essa é minha duvida
                String jasper = request.getContextPath()+ "/report/report/"+nomeRelatorio;     
                String host = "http://" + request.getServerName() + ":" + request.getServerPort();     
                URL jasperURL        = new URL(host + jasper);  
                  
               response.setContentType(CONTENT_TYPE_PDF);     
               byte[] bytes = JasperRunManager.runReportToPdf(jasperURL.openStream(), parameters, con);     
               if (bytes != null) {     
                        ops = response.getOutputStream();     
                        ops.write(bytes);     
                        ops.flush();  
                        ops.close();  
                         
                }     

nada ainda se alguém puder me ajudar como passar o caminho da imagem
no momento que vou rodar o arquivo .jasper e queria passar o caminho

já que no iReport foi criado image com propriedade inputStream ???

alguém já passou por isso ???

Bem…
Se você já tem o caminho da imagem, e no iReport ela está como um inputStream, acho que assim deve te resolver:

File file = new File("suaImagem.jpg");   
InputStream inputStreamDaImagem = null;   
try {   
   inputStreamDaImagem = new FileInputStream(file);   
} catch (FileNotFoundException e) {   
   e.printStackTrace();   
}   
parameters.put ("o que coloco aqui ", inputStreamDaImagem);

[]'s
JL

P.S.: Como você pega o caminho da imagem?
P.S.2: Não é melhor passar o caminho da imagem ao invéz de fazer dela um inputStream?

cara faz tempo q não uso JasperReport mas qdo usava eu colocava as imagens dentro da pasta src do projeto e usava caminho relativo(…/imagem/imagem.jpg) pois minha aplicação rodava pela web e não na máquina do usuario. Assim funcionará em qualquer sistema operacional.
Espero ter ajudado.

obrigado pelo retorno mas como passo esse caminho para o jasper (relatorio)


   Map parameters = HashMAp();  
    parameters.put ("o que coloco aqui ",caminhoImagem);//como tenho que passar para o relatório entender ?????essa é minha duvida  

pois no ireport criei um campo como image e deixei parametro como inputstream

se puder me ajudar

[quote=paribe]obrigado pelo retorno mas como passo esse caminho para o jasper (relatorio)

Map parameters = HashMAp();  
parameters.put ("o que coloco aqui ",caminhoImagem);//como tenho que passar para o relatório entender ?????essa é minha duvida  

pois no ireport criei um campo como image e deixei parametro como inputstream
se puder me ajudar [/quote]

Cara, estive olhando a conversa, e vi o seguinte:

Bem, não tem como fazer magica.
Ou você colocar essa imagem do cabeçalho do relátorio dentro da sua aplicação ou vai ter que definir esse caminho fisico em algum lugar.
Eu aconselho você colocar essa imagem dentro da sua aplicação, e se você fizer isso, basta mudar no seu relatório de inputStream para String e olha novamente o link que te passei nas primeiras respostas de como pegar o caminho da imagem.

[]'s
JL