Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

I am trying to configure hibernate orm mapping tool to my java class and using PostgreSQL as my database and configured the password as "password". When I tried to run the application, I have encountered error on my console logs as Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]. I have tried this on old version of hibernate and it worked. The hibernate version that I am using right now is version 5.1.0.

The following is the error log:

Mar 31, 2016 3:55:09 PM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {5.1.0.Final} Mar 31, 2016 3:55:09 PM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Mar 31, 2016 3:55:09 PM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist Mar 31, 2016 3:55:09 PM org.hibernate.boot.jaxb.internal.stax.LocalXmlResourceResolver resolveEntity WARN: HHH90000012: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/hibernate-configuration. Use namespace http://www.hibernate.org/dtd/hibernate-configuration instead.  Support for obsolete DTD/XSD namespaces may be removed at any time. Mar 31, 2016 3:55:10 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final} Mar 31, 2016 3:55:10 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) Mar 31, 2016 3:55:10 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001005: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://localhost:5432/hibernatedb] Mar 31, 2016 3:55:10 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001001: Connection properties: {user=sa, password=****} Mar 31, 2016 3:55:10 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001003: Autocommit mode: false Mar 31, 2016 3:55:10 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init> INFO: HHH000115: Hibernate connection pool size: 1 (min=1) Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]     at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:244)     at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:208)     at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)     at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)     at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)     at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:217)     at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)     at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)     at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)     at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)     at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418)     at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87)     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:692)     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)     at org.javabrains.hibernate.HibernateTest.main(HibernateTest.java:18) Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect     at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:105)     at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:123)     at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:41)     at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58)     at org.hibernate.engine.jdbc.connections.internal.PooledConnections.addConnections(PooledConnections.java:106)     at org.hibernate.engine.jdbc.connections.internal.PooledConnections.<init>(PooledConnections.java:40)     at org.hibernate.engine.jdbc.connections.internal.PooledConnections.<init>(PooledConnections.java:19)     at org.hibernate.engine.jdbc.connections.internal.PooledConnections$Builder.build(PooledConnections.java:138)     at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:110)     at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:74)     at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)     at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:217)     at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)     at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145)     at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66)     at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)     at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)     at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:234)     ... 14 more Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "sa"     at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:433)     at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:208)     at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)     at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:215)     at org.postgresql.Driver.makeConnection(Driver.java:406)     at org.postgresql.Driver.connect(Driver.java:274)     at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38)     ... 29 more 

The following is my hibernate.cfg.xml file

<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">                   <hibernate-configuration>   <session-factory>     <!-- Database connection settings -->     <property name="connection.driver_class">org.postgresql.Driver</property>     <property name="connection.url">jdbc:postgresql://localhost:5432/hibernatedb</property>     <property name="connection.username">sa</property>     <property name="connection.password">password</property>      <!-- JDBC connection pool (use the built-in) -->     <property name="connection.pool_size">1</property>      <!-- SQL dialect -->     <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>      <!-- Enable Hibernate's automatic session context management -->     <property name="current_session_context_class">thread</property>      <!-- Disable the second-level cache  -->     <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>      <!-- Echo all executed SQL to stdout -->     <property name="show_sql">true</property>      <!-- Drop and re-create the database schema on startup -->     <property name="hbm2ddl.auto">create</property>          <!-- Names the annotated entity class-->     <mapping class="org.javabrains.dto.UserDetails"/>        </session-factory> </hibernate-configuration> 

My POJO class

package org.javabrains.dto;  import javax.persistence.Entity;  @Entity public class UserDetails {          private int userId;     private String userName;          public int getUserId() {         return userId;     }     public void setUserId(int userId) {         this.userId = userId;     }     public String getUserName() {         return userName;     }     public void setUserName(String userName) {         this.userName = userName;     }      } 

And my application class:

package org.javabrains.hibernate;  import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.javabrains.dto.UserDetails;  public class HibernateTest {      public static void main(String[] args) {         UserDetails user = new UserDetails();              user.setUserId(1);         user.setUserName("Tet");                  //Hibernate API to save this objects to DB         //Session factory is created only ONCE         SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();         Session session = sessionFactory.openSession();                  //create transaction         session.beginTransaction();         session.save(user);                  //end the transaction         session.getTransaction().commit();                  //Closing the session         session.close();                       }  } 

The following is the image of java hibernate structure

enter image description here

like image 594
tdel Avatar asked Mar 31 '16 23:03

tdel


1 Answers

Cause: The error occurred since hibernate is not able to connect to the database.
Solution:
1. Please ensure that you have a database present at the server referred to in the configuration file eg. "hibernatedb" in this case.
2. Please see if the username and password for connecting to the db are correct.
3. Check if relevant jars required for the connection are mapped to the project.

like image 155
Vaibhav Bhalla Avatar answered Oct 14 '22 18:10

Vaibhav Bhalla