Bom dia Pessoal,
estou tendo o seguinte problema
HTTP Status 500 - An exception occurred processing JSP page /p01.jsp at line 39
________________________________________
type Exception report
message An exception occurred processing JSP page /p01.jsp at line 39
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /p01.jsp at line 39
36: </head>
37: <body>
38: <% MenuView menu = new MenuView();%>
39: <%=menu.getMenu(vLogin,vMachine,"S")%>
40:
41: <%
42:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
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:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
org.hibernate.AssertionFailure: possible non-threadsafe access to the session
org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:100)
org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:854)
org.hibernate.loader.Loader.doQuery(Loader.java:729)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
org.hibernate.loader.Loader.doList(Loader.java:2220)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
org.hibernate.loader.Loader.list(Loader.java:2099)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:65)
com.br.dao.MenuDao.consultar(MenuDao.java:147)
com.br.dao.MenuDao.select(MenuDao.java:170)
com.br.view.MenuView.geraMenu(MenuView.java:30)
com.br.view.MenuView.getMenu(MenuView.java:161)
org.apache.jsp.p01_jsp._jspService(p01_jsp.java:123)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
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:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
HTTP Status 500 - An exception occurred processing JSP page /qry01.jsp at line 50
________________________________________
type Exception report
message An exception occurred processing JSP page /qry01.jsp at line 50
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /qry01.jsp at line 50
47: Query_Controle controle = new Query_Controle();
48: Query_ControleDao controleDao = new Query_ControleDao();
49:
50: listaControle = controleDao.select(vColunas,vValores);
51:
52:
53: if (listaControle.size() == 0){
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
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:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
javax.persistence.PersistenceException: org.hibernate.SessionException: Session is closed!
org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637)
org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:74)
com.br.dao.Query_ControleDao.consultar(Query_ControleDao.java:45)
com.br.dao.Query_ControleDao.select(Query_ControleDao.java:87)
org.apache.jsp.qry01_jsp._jspService(qry01_jsp.java:131)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
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:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
org.hibernate.SessionException: Session is closed!
org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:49)
org.hibernate.impl.SessionImpl.getBatcher(SessionImpl.java:260)
org.hibernate.loader.Loader.getResultSet(Loader.java:1801)
org.hibernate.loader.Loader.doQuery(Loader.java:674)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
org.hibernate.loader.Loader.doList(Loader.java:2220)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
org.hibernate.loader.Loader.list(Loader.java:2099)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:65)
com.br.dao.Query_ControleDao.consultar(Query_ControleDao.java:45)
com.br.dao.Query_ControleDao.select(Query_ControleDao.java:87)
org.apache.jsp.qry01_jsp._jspService(qry01_jsp.java:131)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
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:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.50 logs.
HTTP Status 500 - An exception occurred processing JSP page /index.jsp at line 29
________________________________________
type Exception report
message An exception occurred processing JSP page /index.jsp at line 29
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 29
26: session.setAttribute("session","ativa");
27:
28: ControlUser control = new ControlUser();
29: String vUsuarioLogado = control.getUser(vLogin,vMachine);
30:
31: if (vUsuarioLogado.equals("invalid")){
32: response.sendRedirect("eacess.jsp");
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
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:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
javax.persistence.PersistenceException: org.hibernate.SessionException: Session is closed!
org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637)
org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:74)
com.br.dao.UsuarioDao.consultar(UsuarioDao.java:119)
com.br.dao.UsuarioDao.select(UsuarioDao.java:137)
com.br.control.ControlUser.getUserLogon(ControlUser.java:30)
com.br.control.ControlUser.getUser(ControlUser.java:61)
org.apache.jsp.index_jsp._jspService(index_jsp.java:101)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
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:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
org.hibernate.SessionException: Session is closed!
org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:49)
org.hibernate.impl.SessionImpl.getBatcher(SessionImpl.java:260)
org.hibernate.loader.Loader.doQuery(Loader.java:726)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
org.hibernate.loader.Loader.doList(Loader.java:2220)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
org.hibernate.loader.Loader.list(Loader.java:2099)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:65)
com.br.dao.UsuarioDao.consultar(UsuarioDao.java:119)
com.br.dao.UsuarioDao.select(UsuarioDao.java:137)
com.br.control.ControlUser.getUserLogon(ControlUser.java:30)
com.br.control.ControlUser.getUser(ControlUser.java:61)
org.apache.jsp.index_jsp._jspService(index_jsp.java:101)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
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:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.50 logs.
________________________________________
Apache Tomcat/7.0.50
O meu arquivo hibertate xml
<?xml version="1.0" encoding="UTF-8"?>
<hibernate-configuration>
<session-factory name="Portal">
<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="hibernate.connection.password">xxxxx</property>
<property name="hibernate.connection.url">xxxx</property>
<property name="hibernate.connection.username">xxxx</property>
<!--
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</property>
<property name="dialect">org.hibernate.dialect.OracleDialect</property>
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">UTF-8</property>
-->
</session-factory>
</hibernate-configuration>
A Minha classe de Manager
package com.br.dao;
//import java.io.IOException;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
//import javax.servlet.FilterChain;
//import javax.servlet.ServletException;
//import javax.servlet.ServletRequest;
//import javax.servlet.ServletResponse;
//import org.hibernate.Filter;
public class ManagerEntityManager {
private static EntityManagerFactory factory;
private static EntityManagerFactory factoryMobile;
private static EntityManager entityManager;
private static EntityManager entityManagerMobile;
/**
* Cria uma entity manager factory única e o retorna em todas as demais chamadas
*/
private static EntityManagerFactory getFactory() {
try{
if (factory == null || !factory.isOpen()) {
factory = Persistence.createEntityManagerFactory("Portal");
}
}catch(Exception e){
System.out.println("Conexão Fechada");
factory = Persistence.createEntityManagerFactory("Portal");
System.out.println("Abrindo nova conexão");
}
return factory;
}
private static EntityManagerFactory getFactoryMobile() {
try{
if (factoryMobile == null || !factoryMobile.isOpen()) {
factoryMobile = Persistence.createEntityManagerFactory("PortalMobile");
}
}catch(Exception e){
System.out.println("Conexão Fechada");
factoryMobile = Persistence.createEntityManagerFactory("PortalMobile");
System.out.println("Abrindo nova conexão");
}
return factoryMobile;
}
/**
* Cria um entity manager único (se criar = true) para a thread e o retorna em todas as demais chamadas
*/
private static EntityManager geraEntityManager() {
getFactory();
try{
if (entityManager == null || !entityManager.isOpen()) {
entityManager = getFactory().createEntityManager();
}
}catch(Exception e){
entityManager = getFactory().createEntityManager();
}
return entityManager;
}
private static EntityManager geraEntityManagerMobile() {
getFactoryMobile();
try{
if (entityManagerMobile == null || !entityManagerMobile.isOpen()) {
entityManagerMobile = getFactoryMobile().createEntityManager();
}
}catch(Exception e){
entityManagerMobile = getFactoryMobile().createEntityManager();
}
return entityManagerMobile;
}
/**
* Cria um entity manager único
*/
public EntityManager getEntityManager(){
return geraEntityManager();
}
public EntityManager getEntityManagerMobile(){
return geraEntityManagerMobile();
}
/* Metodo de Criação do Entity Manager
private EntityManager geraEntityManager(){
try{
entityManager = factory.createEntityManager();
System.out.println("Factory já aberta");
}catch(NullPointerException e){
System.out.println("Criou Factory");
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();
}*/
}
Minha Classe de Dao
package com.br.dao;
import java.util.List;
import java.util.logging.Logger;
import javax.persistence.EntityManager;
//import javax.persistence.EntityManagerFactory;
//import javax.persistence.Persistence;
import javax.persistence.Query;
import com.br.model.Menu;
public class MenuDao {
Logger logger = Logger.getLogger("MenuDao");
StringBuilder vSQL = new StringBuilder();
/* Metodo de Cria��o do Entity Manager */
private EntityManager getEntityManager(){
ManagerEntityManager manager = new ManagerEntityManager();
return manager.getEntityManager();
}
/* Metodo de adi��o de Dados ao Banco de Dados */
private Menu gravar(Menu menu){
EntityManager entityManager = getEntityManager();
try{
entityManager.getTransaction().begin();
logger.info("Incluindo Menu");
if (menu.getDSC_MENU() != null){
menu = entityManager.merge(menu);
}else{
entityManager.persist(menu);
}
entityManager.getTransaction().commit();
}finally{
entityManager.close();
}
return menu;
}
/* Metodo de altera��o de Dados ao Banco de Dados */
private Menu atualizar(Menu menu){
EntityManager entityManager = getEntityManager();
try{
entityManager.getTransaction().begin();
logger.info("Atualizando Menu");
if(menu.getDSC_MENU() != null){
menu = entityManager.merge(menu);
}else{
entityManager.merge(menu);
}
entityManager.getTransaction().commit();
}finally{
entityManager.close();
}
return menu;
}
/* Metodo de Remo��o de Dados ao Banco de Dados */
private void remover(Menu menu){
EntityManager entityManager = getEntityManager();
try{
entityManager.getTransaction().begin();
logger.info("Removendo menu codigo : " + menu.getCOD_MENU());
Object objRemove = entityManager.merge(menu);
entityManager.remove(objRemove);
entityManager.getTransaction().commit();
} finally{
entityManager.close();
}
}
/* Metodo de consulta no banco de dados */
private List<Menu> consultar(List<String> pColunas, List<String> pValores){
EntityManager entityManager = getEntityManager();
vSQL.append( "from Menu as menu");
if (pColunas != null){
vSQL.append( " WHERE ");
for (int i = 0; i < pColunas.size(); i++){
if (i==0){
vSQL.append( " " + pColunas.get(i).toString() + " = '" + pValores.get(i).toString() + "'");
}else{
vSQL.append( " AND " + pColunas.get(i).toString() + " = '" + pValores.get(i).toString() + "'");
}
}
}
vSQL.append( " ORDER BY DSC_MENU");
logger.info("Consulta executada : " + vSQL);
Query vQuery = entityManager.createQuery(vSQL.toString());
@SuppressWarnings("unchecked")
List<Menu> listaMenu = vQuery.getResultList();
entityManager.close();
vSQL.delete(0, vSQL.length());
return listaMenu;
}
/* Metodo de consulta no banco de dados */
private List<Menu> consultar(List<String> pColunas, List<String> pValores, String pOrder){
EntityManager entityManager = getEntityManager();
vSQL.append( "from Menu as menu");
if (pColunas != null){
vSQL.append( " WHERE ");
for (int i = 0; i < pColunas.size(); i++){
if (i==0){
vSQL.append( " " + pColunas.get(i).toString() + " = '" + pValores.get(i).toString() + "'");
}else{
vSQL.append( " AND " + pColunas.get(i).toString() + " = '" + pValores.get(i).toString() + "'");
}
}
}
vSQL.append( " ORDER BY "+pOrder);
logger.info("Consulta executada : " + vSQL);
Query vQuery = entityManager.createQuery(vSQL.toString());
@SuppressWarnings("unchecked")
List<Menu> listaMenu = vQuery.getResultList();
entityManager.close();
vSQL.delete(0, vSQL.length());
return listaMenu;
}
public Menu add(Menu menu){
return gravar(menu);
}
public Menu alter(Menu menu){
return atualizar(menu);
}
public void delete(Menu menu){
remover(menu);
}
public List<Menu> select(List<String> pColunas, List<String> pValores){
return consultar(pColunas,pValores);
}
public List<Menu> select(List<String> pColunas, List<String> pValores, String pOrder){
return consultar(pColunas,pValores,pOrder);
}
}
Alguem poderia me ajudar com este problema que está causando impacto no sistema ?
Grato.