No endpoint está retornando este erro:
- detail: “Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: io.undertow.server.handlers.form.MultiPartParserDefinition$FileTooLargeException: UT000054: The maximum size 1048576 for an individual file in a multipart request was exceeded”
No yml está assim:
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
O arquivo é de 5MB.
O sistema está dentro do portainer - https://www.portainer.io/
Tenho que fazer mais alguma configuração ?
Se não me engano essa configuração é para o spring com versão < 2, para versões > 2 acho que é nesse formato aqui:
spring:
http:
multipart:
max-file-size: 10MB
max-request-size: 10MB
Muda de servlet
para http
, faça um teste no seu ambiente aí!
1 curtida
Não funcionou. Mesmo erro.
- detail: “Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: io.undertow.server.handlers.form.MultiPartParserDefinition$FileTooLargeException: UT000054: The maximum size 1048576 for an individual file in a multipart request was exceeded”
Utilizo jhipster
Muito estranho, parece que ele não compreende a configuração! 
Nunca utilizei o jhipster, sempre utilizei o spring initializr.
Esse jhipster trás algum tipo de benefício?
Pois é
jhipster - Ele ajudou em varias configurações, segurança, usuarios, configuração entre outras coisas …
Tava pesquisando, parece que a galera cria um bean para jogar essas confgurações de multipart.
@Configuration
public class UndertowConfiguration {
@Value("${spring.http.multipart.max-file-size:10}")
private long maxFileSize;
@Bean(name = "multipartResolver")
public MultipartResolver multipartResolver() {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
multipartResolver.setDefaultEncoding("utf-8");
multipartResolver.setResolveLazily(true);
multipartResolver.setMaxUploadSize(1024*1024*maxFileSize);
multipartResolver.setMaxUploadSizePerFile(1024*1024*maxFileSize);
return multipartResolver;
}
}
1 curtida
Cria um projeto com o Spring initializr, implementa o upload de arquivos basicão e faz um teste, se funcionar corretamente o problema é com o jhipster.
1 curtida
Entendi. Mas eu acho que o problema é com ele mesmo. Mas tenho que tentar resolver com ele. Valeu
Reconstruir todo o projeto, não dá
A ideia que disse nem é reconstruir o projeto todo, somente fazer um teste mesmo!
Qualquer coisa habilita o nível de log’s DEBUG e veja se ele apresenta alguma informação relevante quando você tenta fazer o upload do arquivo.
1 curtida
A tá. Mas eu sei que funciona. Já fiz o teste. Só com o spring boot.
Qualquer coisa habilita o nível de log’s DEBUG e veja se ele apresenta alguma informação relevante quando você tenta fazer o upload do arquivo.
Nada alem disso:
detail: “Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: io.undertow.server.handlers.form.MultiPartParserDefinition$FileTooLargeException: UT000054: The maximum size 1048576 for an individual file in a multipart request was exceeded”
O problema que local não dá este erro, pelo menos até o momento.
Não sei se é algo no portainer, também.
Tu está usando o embedded tomcat ou alterou para algum outro?
1 curtida
Tenta fazer a seguinte configuração e faz um teste:
@Configuration
public class ServletContainerCustomizerConfig {
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() throws Exception {
return (ConfigurableEmbeddedServletContainer container) -> {
if (container instanceof TomcatEmbeddedServletContainerFactory) {
TomcatEmbeddedServletContainerFactory tomcat = (TomcatEmbeddedServletContainerFactory) container;
tomcat.addConnectorCustomizers(
(connector) -> {
connector.setMaxPostSize(10000000); //10MB
}
);
}
};
}
}
1 curtida
Mas ele está usando o undertow e não o tomcat como servlet container (bom, pelo menos foi o que entendi)
1 curtida
Falha minha, agora que observei o undertown no log, penssei que fosse o tomcat pq eu havia perguntado e ele confirmou.
1 curtida
@guilhermebhte, talvez tu possa testar com o código do @Jonathan_Medeiros, mas usando a classe UndertowEmbeddedServletContainerFactory no lugar.