Até agora, encontrei três situações usando o Tomcat: primeiro, use Eclipse, configure o Tomcat no Eclipse. Segundo, implante o projeto diretamente no Tomcat. Terceiro, instale o Tomcat como um serviço do Windows.
Nesses três casos, o OUTOFMEMORYERROR aparece. Aqui eu tenho que mencionar que fiquei tragicamente magoado por esses artigos irresponsáveis na internet. Tentei todos os tipos de maneiras de definir memória, mas ela simplesmente não funcionou. Os métodos que mencionei abaixo são todos testados por mim e não há problema.
O primeiro caso:
Como mostrado na figura: fiz com uma estrutura vermelha. Entre eles, XMS e XMX estão os parâmetros do tamanho inicial da pilha e do tamanho máximo da pilha da máquina virtual Java, que é principalmente para resolver os motivos causados pelo espaço de pilha Java insuficiente. XX: PermSize e XX: MaxPermsize são parâmetros que aumentam o tamanho da área de armazenamento permanente inicial e o tamanho máximo da área de armazenamento. Espaço para o carregamento de classes, que está relacionado ao espaço de geração permanente.
O segundo caso:
Coloque o projeto compilado diretamente no tomcat e use o startup.bat para iniciar o serviço Tomcat. O seguinte na pasta Bin de Tomca:
Nesse caso, precisamos modificar os parâmetros no catalina.bat. Abra. Encontre estas duas frases:
Rem Guess Catalina_home se não for definido
Defina "current_dir =%CD%"
Adicione esta frase a essas duas frases e certifique -se de: Defina "Java_OPTS = -xms512m -xmx1024m -xx: PermSize = 256m -xx: maxpermsize = 512m"
Existem muitas coisas semelhantes na internet, mas muitas delas não foram tentadas.
A terceira situação:
Se o seu tomcat estiver registrado como um serviço do Windows e iniciado em serviço, o método acima será inválido, porque neste momento o TomCat Start é ler os parâmetros do registro, em vez dos parâmetros do arquivo em lote. esse. : Encontre tomcat7w.exe no diretório da lixeira do tomcat e abra:
Sob as opções Java: o pool de memória inicial abaixo está a inicialização do tamanho da memória da heap e o pool de memória Maximun é o tamanho máximo da memória da heap. Para definir o tamanho do pool Perm Gen, você precisa adicionar parâmetros à opção Java e adicionar:
-Dcatalina.base =%tomcat_home%
-Dcatalina.home =%tomcat_home%
-Djava.endorsed.dirs =%tomcat_home%/endossado
-Djava.io.tmpdir =%tomcat_home%/temp
-Xx: PermSize = 256m
-Xx: maxpermsize = 256m
-Xx: reservascodecachesize = 48m
-Duser.TimeZone = GMT+08
(Não tenha espaços após cada linha) Eu tentei esse método, ele funciona. Você também pode adicionar parâmetros diretamente no registro. Não vou apresentar isso, não tentei.
De fato, não é difícil resolver o problema da memória do Tomcat. Estamos nos incomodando com esse problema há muito tempo antes. Se você usar o Eclipse, uma mensagem de erro será impressa no console. Mas instalamos o serviço Tomcat em um serviço do Windows, para que não pudéssemos ver nenhum aviso de erro. Depois que o projeto foi iniciado, estava sempre em um estado de espera, o que foi muito lento, deixando as pessoas confusas. Em suma, inexperiente.
O exposto acima se trata de resolver o ExterfMemoryError em Java, e espero que seja útil para o aprendizado de todos.