Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Variável baseFolder da classe FileSaver retornando caminho diferente do criado no Eclipse

Prezados amigos e professores, no curso somos orientados a criar a pasta "arquivos-sumario" dentro do "webapp" pelo eclipse.

A pasta é criada em minha "Workspace" normalmente no caminho "C:\Desenvolvimento\Workspace\casadocodigo_smvc\src\main\webapp\arquivos-sumario".

Quando tentamos gravar o livro pela página form, é apresentado o erro

HTTP Status 500 - Request processing failed; nested exception is java.lang.RuntimeException: java.io.IOException: java.io.FileNotFoundException: C:\Desenvolvimento\Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\casadocodigo_smvc\arquivos-sumario\Cangaceiro JavaScript.jpg (O sistema não pode encontrar o caminho especificado)

Minha variável "realPath" esta pegando o caminho "C:\Desenvolvimento\Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\casadocodigo_smvc\arquivos-sumario"

Como corrigir e porque isso ocorre? Abaixo segue meu código.

@Component
public class FileSaver {

    @Autowired
    private HttpServletRequest request;

    public String write(String baseFolder, MultipartFile file) {
        try {
            String realPath = request.getServletContext().getRealPath("/"+ baseFolder);
            System.out.println(baseFolder);
            System.out.println(    );
            String path = realPath +"/"+ file.getOriginalFilename();
            file.transferTo(new File(path));
            return baseFolder +"/"+ file.getOriginalFilename();
        } catch (IllegalStateException | IOException e) {
            throw new RuntimeException(e);
        }
    }

Desde já obrigado

5 respostas

Olá, João.

Creio que tem a ver com a configuração do Tomcat no WTP, a aba Server do Eclipse.

Por padrão, o WTP faz uma cópia do Tomcat pra dentro da pasta .metadata\.plugins\org.eclipse.wst.server.core do seu Workspace do Eclipse.

Para corrigir isso, precisamos dar duplo clique no Tomcat da aba Servers e usar a opção Use Tomcat installation (takes control of Tomcat installation). Essa opção, "toma conta" do Tomcat, usando o diretório original e não uma cópia do workspace.

Configuração Tomcat no WTP

Há um detalhe: você precisa remover todas as aplicações antes de poder alterar essa opção.

Alexandre, boa tarde.

Realmente esta diferente como falou, mas minhas opções ficam desabilitadas, sabe como torna-las ativas?

Obs: já removi os projetos do tomcat.

Desde já obrigado

solução!

Olá, João!

Faça o seguinte: botão direito no Tomcat e Clean.

E aquela reiniciada esperta! hehe

Na verdade a solução foi a alteração na configuração do tomcat :D, mas eu não teria conseguido se não fosse o plus dando um clean rsrs.

Lembrando que antes do clean eu já havia removido os projetos e testei fechando e executando o eclipse como adm imaginando ser algo de permissão na pasta do tomcat para as opções ficarem ativas.

Fica a dica aos amigos, opções desativadas, lembrar de dar um clean no tomcat mesmo com os projetos já removidos.

Obrigado Alexandre.

Boa, João!

Obrigado por compartilhar!