Carregar arquivo de uma URL

7 respostas
O

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??

Obrigado!!!

7 Respostas

V

no caso você quer baixar o relatório ? imprimir ?

O

Amigo no momento eu gostaria so de baixar o arquivo que esta no endereço web o resto da implementação eu já tenho.
Obrigado

V

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…

V

No caso no seus JasperPrint você informa o caminho do arquivo .jasper certo ?

Você poderia usar esse código:

FacesContext.getCurrentInstance().getExternalContext().getContext()).getRealPath("/relatorios/arquivo.jasper");

Se não me engano ela pega o path real a partir da sua pasta WebContent. Veja aí e dê um retorno.

O

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??

V

posta o codigo que você faz para baixar o arquivo.

O

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());   
        }
Criado 5 de dezembro de 2012
Ultima resposta 5 de dez. de 2012
Respostas 7
Participantes 2