Olá pessoal. Estou tendo erro ao criar o Multipart quando tento executar me da essa exceção
org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.lang.IllegalStateException: Impossível processar partes já que não há configuração de multi-part
O meu multipart foi configurado na classe AppWebConfiguration abaixo está o código da classe
package br.com.casadocodigo.loja.conf;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.support.StandardServletMultipartResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import br.com.casadocodigo.loja.controllers.HomeController;
import br.com.casadocodigo.loja.daos.ProdutoDao;
@EnableWebMvc
@ComponentScan(basePackageClasses = {HomeController.class,ProdutoDao.class})
public class AppWebConfiguration {
@Bean
public InternalResourceViewResolver resolver() {
InternalResourceViewResolver internal = new InternalResourceViewResolver();
internal.setPrefix("/WEB-INF/views/");
internal.setSuffix(".jsp");
return internal;
}
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messages = new ReloadableResourceBundleMessageSource();
messages.setBasename("/WEB-INF/message");
messages.setDefaultEncoding("UTF-8");
messages.setCacheSeconds(1);
return messages;
}
@Bean
public MultipartResolver multipartResolver() {
return new StandardServletMultipartResolver();
}
}
Abaixo a classe ProdutosController
package br.com.casadocodigo.loja.controllers;
import java.util.List;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import br.com.casadocodigo.loja.daos.ProdutoDao;
import br.com.casadocodigo.loja.models.Produto;
import br.com.casadocodigo.loja.models.TipoPreco;
import br.com.casadocodigo.loja.validations.ProdutoValidation;
@Controller
public class ProdutosController {
@Autowired
private ProdutoDao produtoDao;
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.addValidators(new ProdutoValidation());
}
@RequestMapping("produtos/form")
public ModelAndView formCadastrar(Produto produto) {
ModelAndView enviar = new ModelAndView("produtos/form");
enviar.addObject("tipos",TipoPreco.values());
return enviar;
}
@RequestMapping(value = "/produtos",method = RequestMethod.POST)
public ModelAndView cadastrar(MultipartFile sumario, @Valid Produto produto,BindingResult bind,RedirectAttributes attributeFlash){
System.out.println(sumario.getOriginalFilename());
if(bind.hasErrors()) {
return formCadastrar(produto);
}
produtoDao.salvar(produto);
attributeFlash.addFlashAttribute("message","Produto cadastrado com sucesso");
return new ModelAndView("redirect:produtos");
}
@RequestMapping(value="/produtos",method = RequestMethod.GET)
public ModelAndView listar() {
List<Produto> listaProdutos = produtoDao.list();
ModelAndView enviar = new ModelAndView("produtos/lista");
enviar.addObject("produtos",listaProdutos);
return enviar;
}
}