Enviar Relatório Jasper por Email - funciona no eclipse, mas não fora dele

9 respostas
A

Boa tarde pessoal,

Criei um relatório no IReports para enviar para os usuários por e-mail.
Quando eu testo minha classe pelo eclipse, ele envia normalmente, mas quando eu testo a aplicação fora do eclipse ele não envia, o pior é que não mostra nenhuma mensagem de erro.
O sistema normal roda a partir de um arquivo .bat

Sei que é alguma configuração que está correta no eclipse e não no arquivo .bat, mas não estou conseguindo descobrir.
Se alguém tiver alguma idéia do que pode ser, agradeço desde já.

9 Respostas

malhuco

falta alguma lib.

confira as mesmas.

A

já conferi várias vezes… mas não estou conseguindo identificar o problema

malhuco

bom…

posta o código ai então, pra gente analisar.

A

Segue o código abaixo, mas lembrando que ele está funcionando corretamente no eclipse.

if(rs.isFirst()){                
	do{
		String matricula = rs.getString("ID_MATRICULA");
		String linha = rs.getString("ID_LINHA");
		String email = rs.getString("EMAIL");
		       try {
		           	geraRelatorioJasperPDF(SistemaProps.getArquivoRelatorio() + "r_conta_celular", 
					new Object[][] {
				 		{"DATA_INICIAL", this.getDataInicioFatura()},
				 		{"MATRICULA", matricula},
				 		{"LINHA", linha},				 		   							
				 	}
			 	);  
			 		            	
			 	enviaEmailComAnexo(matricula, linha, email);
				} catch (Exception e1) {
					e1.printStackTrace();
				}
			 		       	   	
	} while (rs.next()) ;
	Tratamentos.trataCampo("Contas Enviadas por E-mail");
}
public static void geraRelatorioJasperPDF(java.lang.String relatorio, java.lang.Object[][] parametros){
java.util.HashMap mapParametros = new java.util.HashMap();
            
            for(int i=0; i<parametros.length; i++){
                mapParametros.put(parametros[i][0], parametros[i][1]);
            }
            
            java.io.FileInputStream arquivoJasper;
            
            try{
                arquivoJasper = new java.io.FileInputStream(new java.io.File(relatorio+".jasper")); 
                exportarRelatorioJasperParaPDF(relatorio, mapParametros);
                return;
            }catch(JRException jre){
                jre.printStackTrace();
            }
public static void exportarRelatorioJasperParaPDF(java.lang.String relatorio, Map mapParametros) throws JRException,java.io.FileNotFoundException{
    	JasperFillManager.fillReportToFile(relatorio+".jasper", mapParametros, Conexao.getConnection());
	JasperExportManager.exportReportToPdfFile(relatorio+".jrprint");
}
malhuco

bom pelo o que vi no seu codigo,

1º você deve conferir se ele esta gerando o relatório:

JasperExportManager.exportReportToPdfFile(relatorio+".jrprint");

2º o seu metodo

enviaEmailComAnexo(matricula, linha, email);

não me diz nada.

3º Esta setando o ClassPath corretamente ja que esta utilizando um BatScript.?

A

Então, o código está correto, porque quando eu rodo pelo eclipse funciona normalmente.

Quando eu confiro o .bat no olho, me parece que está ok, mas eu sei que o problema é nele, pq se fosse no código no eclipse também aconteceria o problema.

Será que tem alguma forma de mandar as configurações do classpath que o .bat gera para algum arquivo txt, para que eu possa conferir mais detalhadamente?

malhuco

posta o BatScript.

A

CPADICIONA:

malhuco

ajax,
coloca isso no final do teu arquivo bat: “set CLASSPATH > c:\saida_CLASSPATH.txt”

Criado 21 de maio de 2010
Ultima resposta 21 de mai. de 2010
Respostas 9
Participantes 2