org.mise en veille prolongée.interne.util.config.ConfigurationException: ne Peut pas trouver cfg.xml ressources [/HibernateTest/src/hibernate.cfg.xml]
Je suis en train d'essayer de se connecter à Postgresql9.1 dans ubuntu avec pgadmin3.
Mon Pgadmin3 interface graphique de l'outil ne donne pas une option pour créer des tableaux en cliquant droit sur la base de données, mais il est disponible dans certaines vidéos que j'ai vu. Donc, j'ai utilisé le terminal pour créer la base de données et il a montré dans pgadmin3.
Mon Userdetails fichier
package org.nitish.hiber;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class UserDetails {
@Id
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;
}
}
Mon HibernateCaller fichier
package org.nitish.caller;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.nitish.hiber.UserDetails;
public class HibernateTest {
public static void main(String[] args) {
UserDetails user = new UserDetails();
user.setUserId(1);
user.setUserName("First User");
try {
SessionFactory sessionFactory = new Configuration().configure("/HibernateTest/src/hibernate.cfg.xml").buildSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
} catch(HibernateException e) {
e.printStackTrace();
}
}
}
Hibernate.cfg.xml
<?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, Relational Persistence for Idiomatic Java
~
~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
-->
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">org.postgresql.Driver </property>
<property name="connection.url">jdbc:postgresql://localhost:5432/hiber</property>
<property name="connection.username">nitish</property>
<property name="connection.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>
<mapping class="org.nitish.hiber.UserDetails"/>
</session-factory>
</hibernate-configuration>
Je suis d'erreur suivant
Mar 1, 2016 9:02:48 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Mar 1, 2016 9:02:48 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
org.hibernate.internal.util.config.ConfigurationException: Could not locate cfg.xml resource [/HibernateTest/src/hibernate.cfg.xml]
at org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlResource(ConfigLoader.java:53)
at org.hibernate.boot.registry.StandardServiceRegistryBuilder.configure(StandardServiceRegistryBuilder.java:163)
at org.hibernate.cfg.Configuration.configure(Configuration.java:259)
at org.nitish.caller.HibernateTest.main(HibernateTest.java:17)
Après avoir fait quelques modifications (ne pouvait pas utiliser la session.close() dans le bloc finally je pense que cela ne devrait pas provoquer cette erreur)
Mar 1, 2016 10:13:34 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.1.0.Final}
Mar 1, 2016 10:13:34 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Mar 1, 2016 10:13:34 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Mar 1, 2016 10:13:34 AM 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 1, 2016 10:13:35 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
Mar 1, 2016 10:13:35 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
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.nitish.caller.HibernateTest.main(HibernateTest.java:17)
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [org.postgresql.Driver]
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:229)
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.loadDriverIfPossible(DriverManagerConnectionProviderImpl.java:161)
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildCreator(DriverManagerConnectionProviderImpl.java:117)
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:73)
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: java.lang.ClassNotFoundException: Could not load requested class : org.postgresql.Driver
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl$AggregatedClassLoader.findClass(ClassLoaderServiceImpl.java:217)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:274)
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:226)
... 25 more
hibernate.cfg.xml est dans le dossier src de lui-même
OriginalL'auteur nitishpisal | 2016-03-01
Vous devez vous connecter pour publier un commentaire.
Si vous avez votre
hibernate.cfg.xml
dans la racine du dossier source, il suffit de faireSi il est dans le paquet, pour un exemple dans le
org.nitish.caller
, indiquez le chemin d'accès, par ce moyen,Vous devez fermer le
session
(dans lefinally
bloc). N'oubliez pas d'ajouterrollback
code.S'il vous plaît, ajouter
@Table
annotation à l'UserDetails
.Mise à jour
La raison de l'erreur qu'Hibernate ne peut pas trouver
org.postgresql.Driver
classe. Elle réside dans postgresql jar. Vous avez ce pot à votre image, mais peut-être vous n'avez pas l'ajouter au classpath. Reportez-vous Comment Ajouter des Pots pour Projet de Construire des Chemins d'accès dans Eclipse (Java).Pour fermer un
session
dans lefinally
bloc, vous devez avoirsession
variable en dehors de latry
bloc.Ajouter tout cela à la question.
fait... ne pourrait pas ajouter une session.close() dans le bloc finally si
- Je mettre à jour ma réponse.
comment puis-je ajouter mon pot de classpath, je viens de copier le fichier à partir du dossier de la src comme c'était aller à l'intérieur référencés bibliothèques
OriginalL'auteur v.ladynev
new Configuration().configure()
prendhibernate.cfg.xml
de la racine de la classe de chemin de répertoire.new Configuration().configure("/com/company/project/hibernate.cfg.xml")
prend de racine de chemin de classe + com/company/project/hibernate.cfg.xml.Si vous utilisez un nom de fichier différent pour hibernate configuration à partir de la racine de chemin de classe, puis par exemple:
new Configuration().configure("/database.cfg.xml")
Si vous voulez donner à l'ensemble du système chemin d'accès du fichier de configuration puis
new Configuration().configure(new File("/home/visruth/config/hibernate.cfg.xml))
qui prend le fichier de configuration de l'emplacement exact.OriginalL'auteur Visruth
J'ai résolu ce problème en déplaçant mon fichier de config pour
src/mail/resources
. Pour moi, c'était le répertoire racine.OriginalL'auteur ASH
Toutes les réponses précédentes sont parfaits. Toutefois, si u ont besoin d'une solution rapide, alors je vous recommande de mettre votre hibernate.cfg.xml fichier dans votre dossier source et écrire
C'est simple et ça marche!
OriginalL'auteur Parth Mehta
Cela a résolu l'erreur pour moi!
OriginalL'auteur Mohamed Anees A