Boa noite senhores.
Eu estou com o seguinte problema. Fiz um pequeno cadastro usando hibernate e jsf. Mas quando eu iniciou o servidor. Eu recebo a seguinte messagem de erro: java.lang.ClassCastException: org.hibernate.impl.SessionImpl cannot be cast to org.hibernate.SessionFactory.
Alguém poderia me dar uma força a resolver esse problema.
Abaixo segue os codigos.
EVERE: Exception starting filter conexaoFilter
java.lang.ClassCastException: org.hibernate.impl.SessionImpl cannot be cast to org.hibernate.SessionFactory
at br.com.ergoclinweb.filter.ConexaoHibernateFilter.init(ConexaoHibernateFilter.java:14)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4071)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4725)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
public class ConexaoHibernateFilter implements Filter{
private SessionFactory sf = null;
public void init(FilterConfig config)throws ServletException{
this.sf = (SessionFactory) HibernateUtil.getInstace();
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws ServletException{
try{
this.sf.getCurrentSession().beginTransaction();
chain.doFilter(request, response);
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);
}
}
public void destroy(){}
}
@SuppressWarnings("deprecation")
public class HibernateUtil {
private static final SessionFactory sessionFactory;
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
static {
try {
Configuration configuration = new AnnotationConfiguration();
configuration.configure("hibernate.cfg.xml");
sessionFactory = configuration.buildSessionFactory();
} catch (Throwable t) {
throw new ExceptionInInitializerError(t);
}
}
//Retorna uma SessionFactory
public static Session getInstace() {
Session session = (Session) threadLocal.get();
session = sessionFactory.openSession();
threadLocal.set(session);
return session;
}
}
<filter>
<filter-name>conexaoFilter</filter-name>
<filter-class>br.com.ergoclinweb.filter.ConexaoHibernateFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>conexaoFilter</filter-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>
Agradeço a todos