Conexão entre jpa e hibernate com postgresql retorna erros

Bom estou tentando fazer uma conexão entre jpa e postgresql porem na hora de salvar está me retornando um erro


HTTP Status 500 - java.lang.ExceptionInInitializerError

type Exception report

message java.lang.ExceptionInInitializerError

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: java.lang.ExceptionInInitializerError
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	javax.faces.component.UICommand.broadcast(UICommand.java:315)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.ExceptionInInitializerError
	daos.PessoaDao.salvar(PessoaDao.java:10)
	manageBeans.MBeanPessoa.salvar(MBeanPessoa.java:13)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	org.apache.el.parser.AstValue.invoke(AstValue.java:277)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
	com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	javax.faces.component.UICommand.broadcast(UICommand.java:315)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

javax.persistence.PersistenceException: [PersistenceUnit: comunicaVisual] Unable to build EntityManagerFactory
	org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:924)
	org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:899)
	org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:59)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
	util.JPAUtil.<clinit>(JPAUtil.java:9)
	daos.PessoaDao.salvar(PessoaDao.java:10)
	manageBeans.MBeanPessoa.salvar(MBeanPessoa.java:13)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	org.apache.el.parser.AstValue.invoke(AstValue.java:277)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
	com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	javax.faces.component.UICommand.broadcast(UICommand.java:315)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

org.hibernate.service.classloading.spi.ClassLoadingException: Specified JDBC Driver org.postgresql.Driver could not be loaded
	org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:111)
	org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:76)
	org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:160)
	org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:132)
	org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:223)
	org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:89)
	org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:76)
	org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:160)
	org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:132)
	org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1818)
	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1776)
	org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:96)
	org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914)
	org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:899)
	org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:59)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
	util.JPAUtil.<clinit>(JPAUtil.java:9)
	daos.PessoaDao.salvar(PessoaDao.java:10)
	manageBeans.MBeanPessoa.salvar(MBeanPessoa.java:13)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	org.apache.el.parser.AstValue.invoke(AstValue.java:277)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
	com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	javax.faces.component.UICommand.broadcast(UICommand.java:315)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

org.hibernate.service.classloading.spi.ClassLoadingException: Unable to load class [org.postgresql.Driver]
	org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:152)
	org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:106)
	org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:76)
	org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:160)
	org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:132)
	org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:223)
	org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:89)
	org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:76)
	org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:160)
	org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:132)
	org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1818)
	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1776)
	org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:96)
	org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914)
	org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:899)
	org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:59)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
	util.JPAUtil.<clinit>(JPAUtil.java:9)
	daos.PessoaDao.salvar(PessoaDao.java:10)
	manageBeans.MBeanPessoa.salvar(MBeanPessoa.java:13)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	org.apache.el.parser.AstValue.invoke(AstValue.java:277)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
	com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	javax.faces.component.UICommand.broadcast(UICommand.java:315)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.ClassNotFoundException: Could not load requested class : org.postgresql.Driver
	org.hibernate.service.classloading.internal.ClassLoaderServiceImpl$AggregatedClassLoader.findClass(ClassLoaderServiceImpl.java:319)
	java.lang.ClassLoader.loadClass(ClassLoader.java:425)
	java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	java.lang.Class.forName0(Native Method)
	java.lang.Class.forName(Class.java:270)
	org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:149)
	org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:106)
	org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:76)
	org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:160)
	org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:132)
	org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:223)
	org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:89)
	org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:76)
	org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:160)
	org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:132)
	org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1818)
	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1776)
	org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:96)
	org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914)
	org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:899)
	org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:59)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
	javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
	util.JPAUtil.<clinit>(JPAUtil.java:9)
	daos.PessoaDao.salvar(PessoaDao.java:10)
	manageBeans.MBeanPessoa.salvar(MBeanPessoa.java:13)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	org.apache.el.parser.AstValue.invoke(AstValue.java:277)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
	com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	javax.faces.component.UICommand.broadcast(UICommand.java:315)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

minha arquivo de persistencia

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
      xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

        <persistence-unit name="comunicaVisual" transaction-type="RESOURCE_LOCAL">
        	<class>entys.Pessoa</class>
                <shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
                <validation-mode>AUTO</validation-mode>
                <properties>
                        <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/dremcom_comunica" />
                        <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
                        <property name="javax.persistence.jdbc.user" value="dremcom_comunica" />
                        <property name="javax.persistence.jdbc.password" value="336445" />
                        
                        <property name="hibernate.hbm2ddl.auto" value="update" />
                        <property name="hibernate.show_sql" value="true" />
                        <property name="hibernate.format_sql" value="true" />
                        <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
                        
                <property name="hibernate.cache.use_query_cache" value="true"/>
                <property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.EhCacheRegionFactory"/>
                </properties>
        </persistence-unit>
        
</persistence>

minha Jpa utiil

package util;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JPAUtil {
	/* para garantir que vou fazer essa conexãoo apenas uma vez no meu sistema */
	public static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("comunicaVisual");
	
	/* metodo que retorna  a criação da entidade manager */
	public static EntityManager getEntityManager(){
		return emf.createEntityManager();
	}

}

minha dao

package daos;
import javax.persistence.EntityManager;

import entys.Pessoa;
import util.JPAUtil;

public class PessoaDao {
	
	public String salvar(Pessoa pessoa) {
		EntityManager em = JPAUtil.getEntityManager();
		em.getTransaction().begin();
		em.persist(pessoa);
		em.getTransaction().commit();
		em.close();
		String s =  pessoa.getNome();
		return s;
		
	}


}

minha manageBean

package manageBeans;

import javax.faces.bean.ManagedBean;
import entys.Pessoa;
import daos.PessoaDao;
@ManagedBean
public class MBeanPessoa {
	
	Pessoa pes = new Pessoa();
	PessoaDao pesDao = new PessoaDao();

	public String salvar(){
		pesDao.salvar(pes);
		return pes.getNome();
	}
	
	
	
	public Pessoa getPes() {
		return pes;
	}
	
	public void setPes(Pessoa pes) {
		this.pes = pes;
	}
	
	public PessoaDao getPesDao() {
		return pesDao;
	}
	
	public void setPesDao(PessoaDao pesDao) {
		this.pesDao = pesDao;
	}

}

e por fim meu teste


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">
	<head>
		<title>Pagina de teste</title>
	</head>
	
	<h:body>
	<h:form>
		<h:panelGrid columns="2">
			Nome da Pessoa: <h:inputText value="#{mBeanPessoa.pes.nome}" />
			Endereco: <h:inputText value="#{mBeanPessoa.pes.endereco}" />
			Cep: <h:inputText value="#{mBeanPessoa.pes.cep}" />
			<h:commandButton value="salvar" action="#{mBeanPessoa.salvar}"/>	
		</h:panelGrid>
	</h:form>	  
	</h:body>
</html>

agradeço de mais se algum de vocês poder me dar algumas dicas

[color=red]ClassNotFoundException[/color] é quando está faltando jar na sua aplicação. Adicionou o jar do postgres?