Exception não são tratadas

2 respostas
D

Boa tarde.
Pessoal estou aprendendo java lendo o livro "Programação java para Web"
Não sei porque, mas o sistema simplesmente parou de tratar as exceptions que lanço;

Por exemplo, to forçando a exclusão de um estado que tem cidade vinculada, e aparece erro 500 na pagina, não volta para a tela de listagem com a mensagem que controlo no try catch do metodo excluir.

Abaixo segue os códigos das classe

ConexaoHibernateFilter

import javax.servlet.*;

import org.hibernate.SessionFactory;

import classe.risirefeicoes.utils.Conexao;

public class ConexaoHibernateFilter implements Filter {

	private SessionFactory sf;
	
	@Override
	public void init(FilterConfig config) throws ServletException {
		this.sf	= Conexao.getSessionFactory();
		
	}
	
	@Override
	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
			FilterChain filterChain) throws ServletException {
		
		try {
			this.sf.getCurrentSession().beginTransaction();
			filterChain.doFilter(servletRequest, servletResponse);
			this.sf.getCurrentSession().getTransaction().commit();
			this.sf.getCurrentSession().close();
		} catch (Throwable ex) {
			try {
				if(this.sf.getCurrentSession().getTransaction().isActive()){
					this.sf.getCurrentSession().getTransaction().rollback();
				}
			} catch (Throwable t) {
				t.printStackTrace();
			}
			throw new ServletException(ex);
		}
	}
	
	@Override
	public void destroy() {}
}

EstadoDAOHIbernate

import java.util.List;

import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.Session;

import classe.risirefeicoes.utils.DAOException;
import classe.risirefeicoes.utils.FiltroQuery;
import classe.risirefeicoes.utils.GlossarioMensagens;
import classe.risirefeicoes.utils.ValidaOrdenacaoLimit;

public class EstadoDAOHibernate implements EstadoDAO {
	
	private Session session;
	private String filtroQuery; 
	
	public void setSession(Session session){
		this.session	=	session;
	} 
	
	private void setFiltroQuery(Estado estado){
		this.filtroQuery = FiltroQuery.FiltroQuery(estado);
	}
	
	@Override
	public void Salvar(Estado estado) throws DAOException {
		
		this.session.flush();
		this.session.clear();
		
		if (estado.getEstadoID() == null ){
			try {
				this.session.save(estado);
			} catch (Exception e) {
				throw new DAOException(GlossarioMensagens.getInstance().getMSG04());
			}
		}else{
			try {
				this.session.update(estado);
			} catch (Exception e) {
				throw new DAOException(GlossarioMensagens.getInstance().getMSG05());
			}
		}
	}

	@Override
	public void Excluir(Estado estado) throws DAOException{
		
		this.session.flush();
		this.session.clear();
		
		try {
			 this.session.delete(estado);  
		} catch (Exception e) {
			throw new DAOException(GlossarioMensagens.getInstance().getMSG06());
		}
		
	}
	
	@SuppressWarnings("deprecation")
	@Override
	public Integer TotalRegistros() {
		String sql			   	= 	"SELECT COUNT(*) AS totalRegistros FROM vwlistaestado " ;
		Query consulta	        =	this.session.createSQLQuery(sql).addScalar("totalRegistros", Hibernate.INTEGER);
		Integer totalRegistros  =   (Integer) consulta.uniqueResult();
		return totalRegistros;
	}
	
	@Override
	public Estado Obter(Estado estado) {
		this.setFiltroQuery(estado);
		String sql			   	= 	"SELECT * FROM vwlistaestado " + this.filtroQuery ;
		Query consulta	        =	this.session.createSQLQuery(sql).addEntity(Estado.class);
		return (Estado)			consulta.uniqueResult();		
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Estado> Pesquisar(Estado estado, String campoOrdenacao, String ordenacao, Integer pagina,  Integer limit) {
		
		this.setFiltroQuery(estado);
		
		String sql			   		= 	" SELECT * FROM vwlistaestado " + this.filtroQuery;
		sql							=	ValidaOrdenacaoLimit.ValidaOrdenacaoLimit(sql, campoOrdenacao, ordenacao, pagina, limit);
		Query consulta	        	=	this.session.createSQLQuery(sql).addEntity(Estado.class);
		List<Estado> listaEstado  	=	consulta.list();
		return listaEstado;		
	}

}

web xml

<?xml version="1.0"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  
	                    http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd">
  
  <display-name>Projeto</display-name>
  
  <welcome-file-list>
    	<welcome-file>index.html</welcome-file>
    	<welcome-file>index.htm</welcome-file>
    	<welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- JSF e PrimeFaces -->
  <servlet>
    	<servlet-name>Faces Servlet</servlet-name>
    	<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
   	 <load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
    	<servlet-name>Faces Servlet</servlet-name>
    	<url-pattern>*.html</url-pattern>
  </servlet-mapping>
  
  <context-param>
 	 	<param-name>primefaces.THEME</param-name>
 	 	<param-value>cupertino</param-value>
  </context-param>
  
  <!-- Upload de Arquivos com PrimeFaces   -->
  <filter>  
  		<filter-name>PrimeFaces FileUpload Filter</filter-name>  
		<filter-class> org.primefaces.webapp.filter.FileUploadFilter</filter-class>  
  </filter>
  
  <filter-mapping>  
  		<filter-name>PrimeFaces FileUpload Filter</filter-name>  
		<servlet-name>Faces Servlet</servlet-name>  
  </filter-mapping>  

  <context-param>
  		<param-name>com.sun.faces.expressionFactory</param-name>
    	<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
  </context-param>
    
  <!-- Conexao Filter -->
  <context-param>
		<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
		<param-value>resources.application</param-value>
  </context-param>
	
  <listener>
  		<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>
	
  <filter>
  		<filter-name>ConexaoHibernateFilter</filter-name>
		<filter-class>classe.Projeto.utils.ConexaoHibernateFilter</filter-class>
  </filter>
	
  <filter-mapping>
  		<filter-name>ConexaoHibernateFilter</filter-name>
		<url-pattern>*.html</url-pattern>
  </filter-mapping>
  
  <!-- Spring Security -->
  <context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			/WEB-INF/applicationContext.xml
			/WEB-INF/applicationContext-security.xml
		</param-value>
	</context-param>

	<resource-ref>
		<description>DataSource Projeto</description>
		<res-ref-name>jdbc/Projeto</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>

	<filter>
		<filter-name>springSecurityFilterChain</filter-name>
		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>springSecurityFilterChain</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
</web-app>

Att

2 Respostas

D

Alguém, por favor ?

D

Pessoal esse erro eu consegui resolver, agora estou com esse erro.

21/02/2012 21:22:17 com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
GRAVE: Error Rendering View[/gerenciador/content/estado/index.xhtml]

Alguém tem ideia do porque isso acontece ?

Criado 18 de fevereiro de 2012
Ultima resposta 22 de fev. de 2012
Respostas 2
Participantes 1