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.
Acredito que funcionou eu colocando este arquivo:
application.properties
spring.servlet.multipart.max-file-size=15MB
spring.servlet.multipart.max-request-size=15MB
Pois consegui importar um arquivo de 5 megas que antes não estava conseguindo.
Só que com arquivos de 10 megas mostra esta mensagem Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Java heap space,
Seria aumentar a memoria do servidor ?
Hoje ele tem g1-small (1 vCPUj, 1,7 GB de memória)
O Google já está aconselhando a aumentar para custom (1 vCPUj, 2,75 GB de memória) Recomendado
Um arquivo de 6 mb
um arquivo de 3 mb
Mas um de 10 mg, parece que dá erro de memória.

Nesse caso aqui você precisa ceder um pouco mais de memória, imagino que pelo tamanho do arquivo exija um consumo maior.
Isso é na configuração do JAVA do servidor ?
Se sim aonde altero ?
Na inicialização da sua aplicação você consegue fornecer alguns argumentos sobre a capacidade de memória, que por consequência precisa estar disponível no ambiente em que ela esteja, servidor, container e etc…
Um exemplo de como são os argumentos: https://stackoverflow.com/questions/14763079/what-are-the-xms-and-xmx-parameters-when-starting-jvm
1 curtida
Aumentei a memoria da JVM
application.properties
spring.servlet.multipart.max-file-size=15MB
spring.servlet.multipart.max-request-size=15MB
Aumentei a memoria do servidor de 1,5 gb para 2,5
Mudei isso na configuração
-Xms256m
-Xmx2g
Obrigado @Jonathan_Medeiros e @Lucas_Camara
1 curtida