org.hibernate.HibernateException: No CurrentSessionContext configured!

pessoal sou novo com programação e estou tentando criar um sistema do zero, porém quando eu tento configurar o hibernate aparece este erro, e não to conseguindo arrumar.

org.hibernate.HibernateException: No CurrentSessionContext configured!
	at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:939)
	at filtro.Filtro.doFilter(Filtro.java:32)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:834)
org.hibernate.HibernateException: No CurrentSessionContext configured!
	at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:939)
	at filtro.Filtro.doFilter(Filtro.java:46)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:834)
jan 21, 2020 9:12:06 AM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/SistemaBD] threw exception [org.hibernate.HibernateException: No CurrentSessionContext configured!] with root cause
org.hibernate.HibernateException: No CurrentSessionContext configured!
	at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:939)
	at filtro.Filtro.doFilter(Filtro.java:32)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:834)
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>		
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/sistemabd_homologacao</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="hibernate.current_session_context_class">thread</property>
public class HibernateUtil 
{
	private static final SessionFactory sessionFactory = buildSessionFactory();
	
	private static SessionFactory buildSessionFactory() 
	{
		try 
		{
			AnnotationConfiguration conf = new AnnotationConfiguration();
			conf.configure("hibernate.cfg.xml");
			
			return conf.buildSessionFactory();
		}
		catch(Throwable ex)
		{
			System.out.println("Criação inicial do objeto SessionFactory falou. Erro: " +ex);
			throw new ExceptionInInitializerError(ex); 
		}
	}
	
	public static SessionFactory getSessionFactory() 
	{
		return sessionFactory;
	}
}
	<!--  Configuração da conexão com o banco MySql e dialeto -->
	
	<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>		
	<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
	<property name="connection.url">jdbc:mysql://localhost/sistemabd_homologacao</property>
	<property name="connection.username">root</property>
	<property name="connection.password">root</property>
    <property name="hibernate.current_session_context_class">thread</property>


	
	<!-- Usando as configurações C3PO para pool de conexões -->
	
	<property name="c3p0.min_size">5</property>
	<property name="c3p0.max_size">20</property>
	<property name="c3p0.timeout">300</property>
	<property name="c3p0.maz_statements">50</property>
	<property name="c3p0.idle_test_period">3000</property>
	
	
	<!-- Configurações de debug -->
	
	<property name="show_sql">true</property>
	<property name="format_sql">true</property>
	<property name="generate_statistics">true</property>
	<property name="use_sql_comments">true</property>
	
	<!-- Mapeando classes -->
	
</session-factory>

public class Filtro implements Filter
{
private SessionFactory session;

@Override
public void destroy() { } 
             
@Override 
public void doFilter(ServletRequest request, ServletResponse response,	FilterChain chain) 
throws IOException, ServletException
{
	try  
	{  
		session.getCurrentSession().beginTransaction(); 
		
		chain.doFilter(request, response); 
					 
		session.getCurrentSession().getTransaction().commit();
	
		session.getCurrentSession().close(); 
	}
	catch(Throwable e)
	{    
		e.printStackTrace(); 
		
		try 
		{
			if(session.getCurrentSession().getTransaction().isActive())
			{
				session.getCurrentSession().getTransaction().rollback();
			}
		}
		catch (Throwable e1)  
		{
			e1.printStackTrace();
		}
		
		throw new ServletException(e);
	}
}

@Override
public void init(FilterConfig config) throws ServletException 
{
	session = Conexao.abrirConexao();
}

}

public class Conexao
{
private static SessionFactory session;

public static SessionFactory abrirConexao()
{
	Configuration conf = new Configuration();
	
	conf.addAnnotatedClass(Emissor.class);
	conf.addAnnotatedClass(Endereco.class);
	conf.addAnnotatedClass(Cliente.class);
	conf.addAnnotatedClass(Veiculo.class);
	conf.addAnnotatedClass(Produto.class);
	
	conf.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect");
	
	conf.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
	conf.setProperty("hibernate.connection.url", "jdbc:mysql://localhost:3306/sistemabd_homologacao?autoReconnect=true");
	conf.setProperty("hibernate.connection.username", "root");
	conf.setProperty("hibernate.connection.password", "root");
	
	conf.setProperty("hibernate.hbm2ddl.auto", "update");
	
	ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(conf.getProperties()).buildServiceRegistry();
	
	session = conf.buildSessionFactory(sr);
	
	return session;
}

}