Oi pessoal,
tô com um problema fácil porém o mesmo já está gerando um pouco de dor de cabeça…
Eu uso Eclipse WTP para desenvolver minha aplicação web.
Em um determinado momento eu preciso pegar o Stream de um arquivo dentro do meu projeto.
O Eclipse WTP quando faz o deploy da aplicação copia os arquivos para um pasta interna
dentro do workspace (.metadata\plugins…).
A questão é que o stream do arquivo está vindo nulo mesmo quando eu uso
context.getRealPath("//presentations//modelos//arquivo.xxx");
Eu estou pegando o arquivo com caminho absoluto mas não quero que fique deste jeito…
public InputStream getStreamArquivoJasper(String pathArquivo) {
ServletContext context = (ServletContext) getExternalContext().getContext();
String caminho = "//presentation//util//relatorio//modelosJasper//FormularioImpressaoSolicitacao.jasper";
String nomeArquivo1 = context.getRealPath(caminho);
Properties properties = new Properties();
InputStream fis = this.getClass().getClassLoader().getResourceAsStream("sic.properties");
InputStream stream = null;
try {
properties.load(fis);
String arquivo = properties.getProperty(pathArquivo);
fis.close();
File fp = new File(arquivo);
stream = new FileInputStream(fp);
File fp2 = new File(nomeArquivo1);
InputStream st2 = new FileInputStream(fp2);
} catch (FileNotFoundException e) {
//TODO: Tratar exceção
e.printStackTrace();
} catch (IOException e) {
//TODO: Tratar exceção
e.printStackTrace();
}
return stream;
}
O InputStream stream vem normalmente (este eu passo o caminho físico) mas o InputStream st2
vem null mesmo quando eu consigo pegar o caminho completo com o getRealPath() e quando consigo
criar o File. Não sei se é um problema do Eclipse ou algum erro bobo meu…
Valeu pela ajuda!!!