it-swarm.com.de

Angeforderter Dienst kann nicht erstellt werden [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

Ich versuche, das Hibernate-Orm-Mapping-Tool für meine Java-Klasse zu konfigurieren und PostgreSQL als Datenbank zu verwenden und das Kennwort als "Kennwort" zu konfigurieren. Beim Versuch, die Anwendung auszuführen, ist in meinen Konsolenprotokollen ein Fehler als .__ aufgetreten. Der angeforderte Service kann nicht erstellt werden [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] . Ich habe dies auf einer alten Version von Hibernate ausprobiert und es hat funktioniert. Die Hibernate-Version, die ich gerade verwende, ist Version 5.1.0. 

Folgendes ist das Fehlerprotokoll:

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

Das Folgende ist meine hibernate.cfg.xml-Datei

<?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>

Meine POJO-Klasse

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;
    }

}

Und meine Bewerbungsklasse:

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();


    }

}

Das folgende Bild zeigt die Java-Ruhezustand-Struktur

enter image description here

23
tdel

Ursache: Der Fehler ist aufgetreten, da der Ruhezustand keine Verbindung zur Datenbank herstellen kann.
Lösung:
1. Stellen Sie sicher, dass auf dem in der Konfigurationsdatei angegebenen Server eine Datenbank vorhanden ist, z. "hibernatedb" in diesem Fall.
2. Bitte überprüfen Sie, ob der Benutzername und das Kennwort für die Verbindung zur Datenbank korrekt sind.
3. Prüfen Sie, ob die für die Verbindung erforderlichen relevanten Gläser dem Projekt zugeordnet sind.

9
Vaibhav Bhalla

Sie brauchen hibernate-entitymanager-xxx.jar nicht, weil Sie einen Hibernate-Sitzungsansatz verwenden (nicht JPA). Sie müssen auch die Variable SessionFactory schließen und eine Transaktion bei Fehlern rückgängig machen. Aber das Problem liegt natürlich nicht bei diesen.

Dies wird von einer Datenbank zurückgegeben

#
org.postgresql.util.PSQLException: FATAL: password authentication failed for user "sa"
#

Sieht aus, als hätten Sie einen falschen Benutzernamen oder ein (und) Passwort angegeben. 

8
v.ladynev

Ich hatte diesen Fehler mit MySQL als Datenbank und die einzige Lösung bestand darin, alle Komponenten von MySQL neu zu installieren.

Versuchen Sie also, andere Versionen von PostgreSQL herunterzuladen und alle Komponenten abzurufen

0
Gabriel Leite

Ich habe den gleichen Fehler erhalten und Folgendes geändert

SessionFactory sessionFactory =
    new Configuration().configure().buildSessionFactory();

dazu

SessionFactory sessionFactory =
    new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();

arbeitete für mich.

0
Mahesh Naalla

sie müssen eine andere ausgeführte Anwendung beenden, die in einer bestimmten Datenbanktabelle enthalten ist. Die Ausführung der Java-API in einem anderen Modul oder einem anderen Projekt wird nicht beendet.

0

Es ist entweder ein Problem mit der Datenbankverbindung aufgetreten oder Sie haben keine der Hibernat-Konfigurationen für die Verbindung mit einer Datenbank wie der Datenbank DIALECT gefunden.

Ist mir passiert, weil mein Datenbankserver aufgrund eines Netzwerkproblems getrennt wurde, als ich daran dachte, eine Verbindung herzustellen.

Wenn Sie Spring Boot zusammen mit dem an Oracle Db angeschlossenen Hibernate verwenden, verwenden Sie

hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.show_sql=true
hibernate.hbm2ddl.auto=update
hibernate.generate_statistics=true
entitymanager.packagesToScan: com
0
Yergalem

Aktualisieren Sie den MySQL-Treiber auf Connector/Python 8.0.17. Verwenden Sie die Version größer als MySQL 5.5

0
pudaykiran

Ich verwende Eclipse Mars, Hibernate 5.2.1, Jdk7 und Oracle 11g.

Ich erhalte die gleiche Fehlermeldung, wenn ich das Hibernate-Code-Generierungswerkzeug ausführte. Ich denke, es ist ein Versionsproblem, weil ich es gelöst habe, indem ich die Hibernate-Version (5.1 bis 5.0) im Typframe meiner Hibernate-Konsolenkonfiguration ausgewählt habe.

0
orog

Sie vergessen die @ID über der userId

0