Importar arquivo com angular e spring - Resolvido

Conforme imagem, tenho um array com vários arquivos a serem importados.

Mas dá erro 500. http://localhost:8080/des-if-web/arquivoImportadoRecurso/salvar 500 (Internal Server Error)

O que pode ser ?

Código JAVA

@RestController
public class ArquivoImportadoController {
@PostMapping(value = "/arquivoImportadoRecurso/salvar", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
	public RetornoJackson gravarBanco(
			@PathVariable("file") List<MultipartFile> file,
			@PathVariable("idEntidade") String idEntidade,
			@PathVariable("idEmpresa") String idEmpresa) {
		RetornoJackson retorno = new RetornoJackson();
		ArquivoImportadoEntity entidade = new ArquivoImportadoEntity();
		try {
			arquivoImportadoServico.validarCampos(entidade);
			EmpresaEntity empresa = new EmpresaEntity();
			empresa.setId(new Long(idEmpresa));
			entidade.setEmpresa(empresa);
			EntidadeEntity entidadeEntidade = new EntidadeEntity();
			entidadeEntidade.setId(new Long(idEntidade));
			entidade.setEntidade(entidadeEntidade);
			aplicacaoAuditoria(entidade);
			arquivoImportadoServico.salvar(entidade);
			retorno.setTipo(TipoRetornoMensagemEnum.SUCESSO);
			retorno.setMensagem(Constantes.SALVA_SUCESSO);
		} catch (RegraNegocioException e) {
			logger.error(Constantes.erroSalvar(entidade.getClass().getName()),
					e);
			retorno.setTipo(TipoRetornoMensagemEnum.ERRO);
			retorno.setMensagem(e.getMessage());
		} catch (Exception e) {
			logger.error(Constantes.erroSalvar(entidade.getClass().getName()),
					e);
			retorno.setTipo(TipoRetornoMensagemEnum.ERRO);
			retorno.setMensagem(e.getMessage());
		}
		return retorno;
	}
}

Tenho esta dependência no pom

<dependency>
	<groupId>commons-fileupload</groupId>
	<artifactId>commons-fileupload</artifactId>
	<version>1.3.3</version>
</dependency>

Aproveitando, como faço teste de post no Restket Cliente.

Ele fala em: Unsupported Media Type

1 - Importar que você diz é o mesmo que upload de arquivos?
2 - Poste a mensagem completa do erro ou algo que seja mais coerente que simplesmente um erro 500.
Este erro pode ser devido a maneira como você implementou a lógica.
3 - Sobre o restket, eu nunca usei. Apenas o Postman que é eternamente mais legal. Ele era uma extensão do chrome, agora é uma aplicação à parte.

Respondendo

  1. SIm
  2. As mensagens completa estão ai. Não aparece nada no console do eclipse.
  3. Entendi. Mas a maneira deve ser a mesma.

Este aqui pode ser o problema

Tenho plena certeza que não seria um @PathVariable, mas, um

@RequestParam("file") MultipartFile file

Já testei assim, mas não consegui sucesso.

Agora o erro é 415

<html><head><title>Error</title></head><body>Unsupported Media Type</body></html>

Então Funcionou assim:

Na classe de configuração coloquei o código abaixo,

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

No método alterei para:

@ResponseStatus(HttpStatus.OK)
	@PostMapping(value = "/arquivoImportadoRecurso/salvar", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
	public RetornoJackson gravarBanco(
			@RequestParam("files") MultipartFile files,
			@RequestParam("idEntidade") Long idEntidade,
			@RequestParam("idEmpresa") Long idEmpresa) {

Agora consigo parar com breackpoint dentro do JAVA

Ufa.