Bom dia Pessoal, coloquei um arquivo na pasta src/main/resources/doc/Presencas_Regatas_Abril_2016.xls e fiz a seguinte rotina:
String filePath = this.getClass().getResource("/doc/Presencas_Regatas_Abril_2016.xls").getPath();
File file = new File(filePath);
if(file.exists()){
System.out.println("existe o arquivo");
} else {
System.out.println("Não EXISTE O ARQUIVO");
}
quando eu rodo local, aparece sempre a mensagem “existe o arquivo”, porém quando faço o deployd no Heroku aparece a mensagem que “Não EXISTE O ARQUIVO”
2019-07-15T12:17:29.065752+00:00 app[web.1]: jar:file:/app/target/regatas-api-1.0.0-SNAPSHOT.jar!/BOOT-INF/classes!/doc/Presencas_Regatas_Abril_2016.xls
2019-07-15T12:17:29.066162+00:00 app[web.1]: Não EXISTE O ARQUIVO
deu o erro abaixo
java.io.FileNotFoundException: class path resource [doc/Presencas_Regatas_Abril_2016.xls] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/app/target/regatas-api-1.0.0-SNAPSHOT.jar!/BOOT-INF/classes!/doc/Presencas_Regatas_Abril_2016.xls
Porque precisa do objeto File?
Um File representa um arquivo ou diretório no sistema de arquivos do sistema operacional.
Seu artefato não é um arquivo em disco, ele é parte do conteúdo do seu JAR.
Faça assim:
InputStream input = getClass().getResourceAsStream("/doc/Presencas_Regatas_Abril_2016.xls");
if (input != null) {
System.out.println("existe o arquivo");
} else {
System.out.println("não existe o arquivo");
}
tenho arquivoTemplate.xls e todo mês , irá entrar na rotina e gerar um arquivo por exemplo chamado arquivo072019.xls e neste arquivo irá preencher algumas informações vindo do meu Banco de Dados.
Local Host, funciona de boa, mas no heroku, estou com essa dificuldade.
Preenchi este arquivo, o usuário irá fazer um download deste arquivo, que será enviado por e-mail, para a empresa.
Não enxerguei uma forma de fazer isso, se tiver uma sugetão serão muito bem vindo.