3
respostas

Tópico “Enviando arquivos para servidor” - Aula 9

Quando executo a função para realizar o upload do arquivo a ser salvo, o sistema não está encontrando a pasta arquivos-sumario armazenada dentro da pasta webapp do projeto. Já verifiquei o código e o mesmo está semelhante ao da aula. Abaixo a mensagem de erro que esta sendo gerada. jan 18, 2019 8:06:01 AM org.apache.catalina.startup.Catalina start INFORMAÇÕES: Server startup in 6799 ms

carga arquivo controlerTesteSpring.pdf C:\DOCUMENTOS\PARTICULAR\CURSOS\ALURA\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\casadocodigo\arquivos-sumario C:\DOCUMENTOS\PARTICULAR\CURSOS\ALURA\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\casadocodigo\arquivos-sumario/TesteSpring.pdf

Transferinfo arquivo jan 18, 2019 8:06:24 AM org.apache.catalina.core.StandardWrapperValve invoke GRAVE: Servlet.service() for servlet [dispatcher] in context with path [/casadocodigo] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: java.io.IOException: java.io.FileNotFoundException: C:\DOCUMENTOS\PARTICULAR\CURSOS\ALURA\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\casadocodigo\arquivos-sumario\TesteSpring.pdf (O sistema não pode encontrar o caminho especificado)] with root cause java.io.FileNotFoundException: C:\DOCUMENTOS\PARTICULAR\CURSOS\ALURA\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\casadocodigo\arquivos-sumario\TesteSpring.pdf (O sistema não pode encontrar o caminho especificado) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(Unknown Source) at java.io.FileOutputStream.(Unknown Source) at java.io.FileOutputStream.(Unknown Source) at org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.write(DiskFileItem.java:394)

insira seu código aqui
3 respostas

Oi Fabio, tudo bem?

Você está tentando acessar um diretório inválido. Qual o curso e aula que você está fazendo? Vou dar uma olhada.

Curso - Spring MVC - Criando Aplicações WEB
Aula 9 - Enviando arquivos para o Servidor

Fábio em aplicações Web vc nunca deve utilizar caminhos absolutos para arquivos e diretórios. Lembre-se que a aplicação que vc desenvolve na sua máquina (windows por exemplo), será publicado num servidor de aplicação (possielmente linux), portanto com outra estrutura de "file system".

Então todas as referências para arquivos e diretórios devem ser relativos a aplicação Web, por exemplo:

servletContext.getResourceAsStream("/WEB-INF/nomeDoArquivo.txt");

O exemplo acimo lê um arquivo presente dentro da pasta WEB-INF, que na sua máquina estará num lugar específico dependendo de onde criastes o projeto, mas qdo a aplicação for publicada num servidor provavelmente será outro. Mas independente do local físico o código abaixo sempre funcionará pois é relativo a pasta WEB-INF da sua aplicação, independente de onde esteja.

Espero que ajude.