Artigo Diretório
Cenário de problema
Depois que o springboot for empacotado, leia o conteúdo do arquivo de recurso e relate um erro. A mensagem de erro é a seguinte:
cannot be resolved to absolute file path because it does not reside in the file system: jar
Ambiente problemático
Programas | versão |
---|---|
springboot | 2.1.1.LIBERAR |
causa do problema
Após o empacotamento, o Spring não pode acessar os arquivos no pacote jar na forma de Arquivo.
solução
Existem duas opções:
1. Use resource.getInputStream () para ler o conteúdo do arquivo
2. Cache para um arquivo temporário, use o caminho do arquivo temporário para leitura
O código de amostra é o seguinte:
String tempPath = System.getProperty("java.io.tmpdir")+"tomcat_"+System.currentTimeMillis();
String tempFile = tempPath+File.separator+fileName;
Resource resource = new DefaultResourceLoader().getResource("classpath:META-INF/resources"+filePath);
if (resource == null) {
return "";
}
File file = new File(tempPath);
if (!file.exists()) {
file.mkdir();
}
IOUtil.cp(resource.getInputStream(),new FileOutputStream(new File(tempFile)));
resultado
Resolva o problema sem problemas! ! !
Resumindo
Formação contínua!
Peça elogios
Se o meu artigo é útil para todos, você pode clicar como favorito ou na parte inferior do artigo,
se houver uma boa discussão, você pode deixar uma mensagem;
se você quiser continuar a ver meus artigos futuros, você pode clique em Seguir
Você pode escanear o seguinte código QR para seguir minha conta pública: Fengye Zhixuege, confira meu último compartilhamento!