Olá amigos,
Seguinte eu estou desenvolvendo uma aplicação web que eu preciso carregar um arquivo.jasper para poder exibir um relatorio.
Vamos supor que minha aplicacao esteja no endereço: http://localhost:8080/site/ e o arquivo.jasper esteja na pasta WebContent/relatorios/arquivo.jasper.
Eu nao preciso salvar em disco este arquivo, so preciso de uma referencia para gerar JasperPrint, a questão: Que metodo da classe URL eu uso ? eu devo retornar um InputStream e depois iteragir? porque o conteudo do arquivo vem todo desconfigurado??
Certo, eu tenho o código pra baixar pelo pdf, que mostra como você fazer pra pegar o .jasper na pasta webContent só que não tou em casa e provavelmente só vou chegar a noite. Se você puder esperar, eu posto quando chegar…
Valeio, vamos imaginar que o arquivo esteja na web: www.meusite.com.br, Como eu faria para criar uma copia em memória para depois gerar uma instancia jasper??
Vamos lá, como vê eu tenho um arquivo chamado arquivo.txt e o conteudo deste arquivo é Olá Mundo, eu consigo gerar o novo arquivo (novo_arquivo.txt) porem o que vejo em conteudo é o seguinte valor:
[i]
html, body {height:100%;margin:0;}Sistema
…
[/i]
try{
URL url = new URL("http://localhost:8080/loja/relatorios/arquivo.txt");
File file = new File("novo_arquivo.txt");
OutputStream out = new FileOutputStream(file, false);
URLConnection conn = url.openConnection();
InputStream in = conn.getInputStream();
int i=0;
while ((i = in.read()) != -1){
out.write(i);
}
in.close();
out.close();
System.out.println("Ok");
}
catch (FileNotFoundException e){
System.out.println("Arquivo não encontrado. Causa: " + e.getMessage());
}
catch (MalformedURLException e){
System.out.println("Erro na formação da URL. Causa: " + e.getMessage());
}
catch (IOException e){
System.out.println("Erro de entrada/saida de dados. Causa: " + e.getMessage());
}