Olá, estou tentando fazer um simples upload de um arquivo, mas pelo que percebi ele sempre vem nulo :
Método:
@Post public void persistcc(Contracheque contracheque, UploadedFile pdf) { System.out.println("----------------------------"+ pdf.getFileName()); `` File pdfSalva = new File("D:\\contracheque\\src\\main\\webapp\\pdf\\", pdf.getFileName()); //pega o nome do arquivo enviado pelo upload do hmtl contracheque.setFilename(pdf.getFileName());
`
try {
//persiste
em.merge(contracheque);
pdf.writeTo(pdfSalva);
} catch (IOException e) {
e.printStackTrace();
}
//Retorna uma mensagem para o usuario em flash scoped
result.include("info", "contracheque do mês " + contracheque.getMes()+ " adicionado com sucesso!");
result.redirectTo(FuncionarioController.class).listafuncionario();
}`
Html:
<form action="/contracheque/contracheque/persistcc" method="post" enctype="multipart/form-data" > Arquivo pdf: <input type="file" id="pdfupload" name="pdf" /> <br/> <button className="btn btn-primary" type="submit">Inserir Contracheque</button>
Erro:
root cause java.lang.NullPointerException br.com.caelum.vraptor.controller.ContrachequeController.persistcc(ContrachequeController.java:39)
A linha 39 é a do sysout: System.out.println("----------------------------"+ pdf.getFileName());
Commons fileupload e io estão no pom.xml, vi vários
tópicos sobre o mesmo erro, mas não consegui resolver, o arquivo sempre
vem nulo, tenho outro método parecido com esse que também dá o mesmo
erro.
Alguém sabe como corrigir?
Vraptor 4.2.0-RC4