Falha na Comunicação com o Postgres (Java + Maven + JSF + Hibernate + Postgres)

Pessoal, Boa tarde, sou um novo usuário em Java e não estou conseguindo conectar com a Base de Dados, segue as informações:

pom.xml

4.0.0 br.com.asprem ProjetoAsprem 0.0.1-SNAPSHOT war
org.glassfish javax.faces 2.2.14
org.primefaces primefaces 6.1
org.hibernate hibernate-core 5.2.10.Final compile
org.hibernate hibernate-entitymanager 5.2.10.Final compile
org.hibernate.javax.persistence hibernate-jpa-2.0-api 1.0.1.Final org.postgresql postgresql 42.1.1 compile
prime-repo PrimeFaces Maven Repository http://repository.primefaces.org default

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>


  <provider>org.hibernate.ejb.HibernatePersistence</provider>
  <properties>
  	<!-- Conexao com o banco de dados -->
  	<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/postgres" />
  	<property name="hibernate.connection.username" value="postgres" />
  	<property name="hibernate.connection.password" value="xandao" />
  	<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
  	<!-- Configuracao para Debbug -->
  	**<property name="hibernate.hbm2ddl.auto" value="create" />**
  	<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL94Dialect" />
  	<property name="hibernate.connection.shutdown" value="true" />
  	**<property name="hibernate.show_sql" value="true" />**
  	<property name="hibernate.format_sql" value="true" />
  </properties>

Conforme destacado eu estou dando Create, ou seja, solicitando que se criem as tabelas automaticamente na base de dados.

Segue o Console

mai 27, 2017 10:55:17 AM org.apache.catalina.core.AprLifecycleListener init
INFORMAÇÕES: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
mai 27, 2017 10:55:17 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
ADVERTÊNCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:ProjetoAsprem’ did not find a matching property.
mai 27, 2017 10:55:17 AM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler [“http-bio-8080”]
mai 27, 2017 10:55:17 AM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler [“ajp-bio-8009”]
mai 27, 2017 10:55:17 AM org.apache.catalina.startup.Catalina load
INFORMAÇÕES: Initialization processed in 489 ms
mai 27, 2017 10:55:17 AM org.apache.catalina.core.StandardService startInternal
INFORMAÇÕES: Starting service Catalina
mai 27, 2017 10:55:17 AM org.apache.catalina.core.StandardEngine startInternal
INFORMAÇÕES: Starting Servlet Engine: Apache Tomcat/7.0.47
mai 27, 2017 10:55:19 AM com.sun.faces.config.ConfigureListener contextInitialized
INFORMAÇÕES: Inicializando Mojarra 2.2.14 ( 20161114-2152 unable to get svn info) para o contexto '/ProjetoAsprem’
mai 27, 2017 10:55:19 AM com.sun.faces.spi.InjectionProviderFactory createInstance
INFORMAÇÕES: JSF1048: Anotações PostConstruct/PreDestroy presentes. Os métodos ManagedBeans marcados com essas anotações informarão as anotações processadas.
mai 27, 2017 10:55:20 AM org.primefaces.webapp.PostConstructApplicationEventListener processEvent
INFORMAÇÕES: Running on PrimeFaces 6.1
mai 27, 2017 10:55:20 AM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler [“http-bio-8080”]
mai 27, 2017 10:55:20 AM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler [“ajp-bio-8009”]
mai 27, 2017 10:55:20 AM org.apache.catalina.startup.Catalina start
INFORMAÇÕES: Server startup in 3351 ms

Esse é todo o Console gerado, porém nada acontece no banco, que já tem a base de dados com o nome “postgres”.

O que estou fazendo errado? Podem me ajudar por favor? Obrigado!

Cara aparentemente iniciou normalmente seu tomcat.
Essa biblioteca nativa ai é opcional se não engano.

Quanto ao create, ele (hibernate) só vai criar tabela quando você chamar o banco de dados, por exemplo dar um persist, pois ai sim ele vai conectar no banco e gerar as tabelas de acordo com as entidades que você mapeou.

Boa tarde @JulioCesarSF, obrigado pela resposta. Mas o inicio não foi normal não. Evidencia que tenho disso é que posso mudar o nome do meu database para qualquer coisa no persistence.xml que ainda sim tenho a mesma saida. Ele não está se comunicando com a base de dados. Acredito que o problema seja nessa mensagem:

INFORMAÇÕES: Inicializando Mojarra 2.2.14 ( 20161114-2152 unable to get svn info) para o contexto ‘/ProjetoAsprem’

No entanto ainda não consegue resolver!

Como está a sua classe de conexão?

E como estão suas entidades? O que o create tem que criar de fato?

@JulioCesarSF, @adriano_si Obrigado por responderem. Não tenho uma classe de conexão. Acredito que quando se conecta via JPA Hibernate, a conexão é efetuada quando subo o servidor, através das informações presentes no persistence.xml. Estou errado em pensar isso?

Uma classe de teste que gerei é:

public class Teste {

public static void main(String[] args) {
// TODO Auto-generated method stub

  EntityManagerFactory f = Persistence.createEntityManagerFactory("ProjetoAsprem");
  EntityManager m = f.createEntityManager();
  EntityTransaction t = m.getTransaction();
  t.begin();
  
  Cadastro c = new Cadastro();
  
  c.setCpf("229.667.588-30");
  
  m.persist(c);
  t.commit();

}

}

Quando executo ela no server obtenho como resposta:

Você precisa chamar a conexão quando for usar. Ele não sobe a conexão sozinho.

Ou seja, você precisa chamar Persistence.createEntityManagerFactory para criar a conexão.

Para testar essa classe, você vai ter rodar como Java Application e não no Tomcat.

Para testar com o tomcat ai no seu caso, você terá de gerar o xhtml + managedbean e fazer as chamadas por ali. ( Testar usando o navegador).

@Wellington_Nicodemos, posta sua classe Cadastro. :wink:

Pessoal, muito obrigado pela ajuda. Acho que sou tão burro que nem consegui fazer a pergunta direito! Por fim, o que falava para mim era incluir ao maven a depencia do servelt, feito isso minha classe rodou e gerou a base de dados como eu imaginei que deveria acontecer.

Muito obrigado novamente!