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

Problema com envio de arquivo

Olá! Estou com um problema com o envio de arquivos. Seguindo os passos da aula, coloquei para dar um System.out.println(file.getOriginalFilename()); logo no começo do método gravar do controller. Estou sempre recebendo umRequest processing failed; nested exception is java.lang.NullPointerException quando envio o formulário.

Na aula mostra esse erro e ele é corrigido colocando no AppWebConfiguration o

@Bean
    public MultipartResolver multipartResolver() {
        return new StandardServletMultipartResolver();
    }

e no ServletSpringMvc o

@Override
    protected void customizeRegistration(Dynamic registration) {
        registration.setMultipartConfig(new MultipartConfigElement(""));
    }

mas eu já coloquei coloquei esses codigos e continuo tendo erro de NullPointerException na hora de mostrar o nome do arquivo no console.

O que mais pode estar errado que eu não estou percebendo?

vlw!

3 respostas

Vendo mais uma vez a aula percebi um detalhe que não tinha visto das outras vezes.. o nome do arquivo MultiPartResolver na chamada do método tem que ser o mesmo que esta no name da jsp.. Resolvi o problema do nullpointerException mas agora apareceu outro..

Quando entra no if para verificar se tem erro de validação, ele sempre volta com o seguinte erro referente ao arquivo

Failed to convert property value of type org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile to required type java.lang.String for property sumario; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile] to required type [java.lang.String] for property sumario: no matching editors or conversion strategy found

obs, não estou validando nada neste campo

o que pode ser essa vez?

vlw!

Olá, Fillipe!

O erro está dizendo que o sumario, que é um arquivo (ou StandardMultipartFile) , está sendo convertido para uma String.

Em qual parte do exercício você está? Talvez falte continuar os exercícios até o final, para daí testar.

solução!

Olá Alexandre,

Estou na aula 8.1.. (enviando arquivo para o servidor)

Ai que esta.. o erro eu até que entendi, mas estou seguindo igual esta no curso.. Para não salvar o arquivo direto no banco, no modelo ele coloca o o atributo como String e coloca só do Path do arquivo no banco, e o arquivo em si fica em uma pasta.

quando eu coloco exatamente igual esta no vídeo

[modelo]
@Entity
public class Produto {
    private String sumarioPath;
    ...
}
[metodo]
@RequestMapping("/grava")
    public ModelAndView gravarAtendimento(MultipartFile sumario, @Valid Produto produto BindingResult result, RedirectAttributes attributes){

        System.out.println(sumarioPath.getOriginalFilename());

            if(result.hasErrors()) {
            return formCadastro(atendimento);
        }
...
}
[jsp]
<div>
                                <input name="sumario" type="file" id="sumario" />

                            </div>

o sistema da o seguinte erro quando tento acessar a pagina do formulario

funcionou!

hahaha... era só perseguição mesmo pelo jeito.. xD Desde o dia que coloquei essa duvida que não mexi mais.. ai fui escrever isso copiando e colando do meu código pra te mostrar exatamente como está.. quando fui fazer o teste pra copiar o erro em si, funcionou...

mas vlw mesmo assim cara.. ficou desse jeito ai o código.. O modelo realmente é String...