Boa Tarde Pessoal,
estou utilizando o eclipse + Tomcat para desenvolver uma aplicação web.
Porem em alguns momentos, estou obtendo os seguinte erro
HTTP Status 500 - javax.servlet.ServletException: java.lang.OutOfMemoryError: Java heap space
--------------------------------------------------------------------------------
type Exception report
message javax.servlet.ServletException: java.lang.OutOfMemoryError: Java heap space
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.OutOfMemoryError: Java heap space
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
javax.servlet.ServletException: java.lang.OutOfMemoryError: Java heap space
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:912)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:841)
org.apache.jsp.con29_jsp._jspService(con29_jsp.java:159)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.OutOfMemoryError: Java heap space
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.30 logs.
Pelo que entendi, houve estouro de memoria, porem, pelo log, não consegui entender onde poderia estar o problema que está sobrecarregando a memoria.
Alguém poderia me ajudar ?
Somente para referencia estou utilizando minha classe de conexão desta maneira
package com.br.dao;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class ManagerEntityManager {
EntityManagerFactory factory;
EntityManager entityManager;
/* Metodo de Criação do Entity Manager */
private EntityManager geraEntityManager(){
factory = Persistence.createEntityManagerFactory("Portal");
if (entityManager == null){
entityManager = factory.createEntityManager();
}
if (!factory.isOpen()) {
System.out.println("Nova conexão");
entityManager = factory.createEntityManager();
return entityManager;
}else{
System.out.println("Utilizando conexão já aberta");
return entityManager;
}
}
public EntityManager getEntityManager(){
return geraEntityManager();
}
}
e as classes de dao são todas deste modo
[code]
package com.br.dao;
import java.util.List;
import java.util.logging.Logger;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import com.br.model.Ts_Local_Negocio;
public class Ts_Local_NegocioDao {
Logger logger = Logger.getLogger("br.com.log");
/* Metodo de Cria��o do Entity Manager */
private EntityManager getEntityManager(){
/*
EntityManagerFactory factory;
EntityManager entityManager;
factory = Persistence.createEntityManagerFactory("Portal");
if (factory.isOpen()) {
factory.close();
entityManager = factory.createEntityManager();
}else{
entityManager = factory.createEntityManager();
}
return entityManager;
*/
ManagerEntityManager manager = new ManagerEntityManager();
return manager.getEntityManager();
}
/* Metodo de consulta no banco de dados */
private List<Ts_Local_Negocio> consultar(List<String> pColunas, List<String> pValores){
EntityManager entityManager = getEntityManager();
String vSQL = "from Ts_Local_Negocio as ts_local_negocio";
if (pColunas != null){
vSQL += " WHERE ";
for (int i = 0; i < pColunas.size(); i++){
if (i==0){
vSQL += " " + pColunas.get(i).toString() + " = '" + pValores.get(i).toString() + "'";
}else{
vSQL += " AND " + pColunas.get(i).toString() + " = '" + pValores.get(i).toString() + "'";
}
}
}
vSQL += " ORDER BY NUM_ID DESC";
logger.info("Consulta : " + vSQL);
Query vQuery = entityManager.createQuery(vSQL);
@SuppressWarnings("unchecked")
List<Ts_Local_Negocio> listaLocalNegocio = vQuery.getResultList();
entityManager.close();
return listaLocalNegocio;
}
public List<Ts_Local_Negocio> select(List<String> pColunas, List<String> pValores){
return consultar(pColunas,pValores);
}
}[/code]
grato,