org.mise en veille prolongée.HibernateException: /hibernate.cfg.xml pas trouvé
Je suis en train d'utiliser hibernate, spring mvc 3, mais pour le moment je bénéficier de cette exception. Je pense que j'ai besoin de définir mon hibernate.cfg.xml
quelque part, mais vous ne savez pas où?
En gros, j'ai suivi cet exemple, ici http://www.nabeelalimemon.com/blog/2010/05/spring-3-integrated-with-hibernate-part-a/ Et en particulier vu cette ligne de code qui suppose de "magie" trouver ma mise en veille prolongée.fichier cfg à l'aide de ceci:
return new Configuration().configure().buildSessionFactory();
Je suppose que c'est pas correct? j'ai actuellement ma mise en veille prolongée.fichier cfg à l'intérieur de src/com/jr/hibernate/
ci-dessous mon fichier cfg:
<?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">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/racingleague</property>
<property name="connection.username">username</property>
<property name="connection.password">password</property>
<property name="hibernate.format_sql">true</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</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.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="hibernate.show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!--property name="hbm2ddl.auto">update</property-->
<mapping resource="com/jr/model/hibernateMappings/user.hbm.xml"/>
</session-factory>
</hibernate-configuration>
mon hibernate utils classe:
package com.jr.utils;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtils {
private static final SessionFactory sessionFactory = buildSessionFactory();
public static SessionFactory buildSessionFactory() {
try {
//Create the SessionFactory from hibernate.cfg.xml
return new Configuration().configure().buildSessionFactory();
}
catch (Throwable ex) {
//Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
}
qui est appelé à la bu cette classe abstraite:
package com.jr.db;
import org.hibernate.SessionFactory;
import org.hibernate.classic.Session;
import com.jr.utils.HibernateUtils;
public abstract class DbWrapper<T> {
private static SessionFactory sessionFactory = null;
private static Session session;
public DbWrapper() {
setSessionFactory();
}
private void setSessionFactory() {
sessionFactory = HibernateUtils.buildSessionFactory();
session = sessionFactory.getCurrentSession();
}
public boolean addNewItem(T dbItem) {
try {
session.getTransaction().begin();
session.save(dbItem);
session.getTransaction().commit();
} catch (Exception e) {
System.err.println("error exception when adding new item to table"
+ e);
} finally {
session.close();
sessionFactory.close();
}
return false;
}
public abstract boolean removeItem(String uid);
public abstract boolean modifyItem(String uid, T item);
}
Et ici, c'est le contrôleur qui à l'origine n'certains hibernate trucs:
private Logger logger = Logger.getLogger(UserController.class);
private UserDb userDb;
@RequestMapping(value = "/user/registerSuccess", method = RequestMethod.POST)
public String submitRegisterForm(@Valid User user, BindingResult result) {
//validate the data recieved from user
logger.info("validate the data recieved from user");
if (result.hasErrors()) {
logger.info("form has "+result.getErrorCount()+" errors");
return "account/createForm";
} else{
//if everthings ok, add user details to database
logger.info("if everthings ok, add user details to database");
userDb = new UserDb();
userDb.addNewItem(user);
//display success and auto log the user to the system.
return "account/main";
}
}
Acclamations à l'avance. J'ai aussi tous mes table hibvernate mappages xml dans le même emplacement que mon hibernate.cfg.xml fichier
OriginalL'auteur jonney | 2011-02-08
Vous devez vous connecter pour publier un commentaire.
Au lieu de placer
hibernate.cfg.xml
fichier soussrc/com/jr/hibernate/
répertoire, la place soussrc
répertoire. Il sera alors automatiquement apparaître dansWEB-INF/classes
répertoire, tel que mentionné par les gens d'ici.Merci...après le déplacement de mon fichier(hibernate.cfg.xml) à la src, il va localiser le fichier merci beaucoup encore une fois
OriginalL'auteur limc
hibernate.cfg.xml
doit être trouvé dans la racine du classpath lors de la webapp est commencé.Si vous utilisez maven pour construire le projet, mis de l'hibernate.cfg.xml dans le
src/main/resources
répertoire de sorte que lorsque vous construisez la guerre, il sera automatiquement placé dans/WEB-INF/classes
.Si vous n'utilisez maven, placez le fichier directement dans votre
WEB-INF/classes
répertoire.OriginalL'auteur guido
hibernate.cfg.xml
devrait être dansWEB-INF/classes
. Alternativement, vous pouvez le charger à partir d'un emplacement personnalisé en passant l'argument correspondant à laconfigure(..)
méthode.config.configure("/resources/hibernate.cfg.xml");
ne fonctionne pas pour moi. En fait, je suis en train de faire un simplehibernate 3.1
app. Btw,config
est de typeAnnotationConfiguration
.OriginalL'auteur Bozho
Si vous utilisez Maven, vous devez placer le fichier hibernate.cfg.xml dans le chemin suivant /src/main/java/resources/hibernate.cfg.xml dans Intellij IDEA. Ensuite, dans votre course de classe d'application il suffit d'insérer la ligne:
alors que penser de NetBeans?
OriginalL'auteur DevMario
À l'Ide, allez à "Ouvrir les Paramètres de Projet" >> Modules >> mise en veille prolongée et votre cible hibernate.cfg.xml fichier utilisé dans votre projet.
OriginalL'auteur Epredator
J'ai le même problème et a déménagé hibernate.cfg.xml à la src/main/resources répertoire résolu, il sera automatiquement placé dans /WEB-INF/classes.
OriginalL'auteur Felipe Moura
Même si j'ai eu
hibernate.cfg.xml
soussrc
dossier, je reçoisaprès l'exécution de
mvn clean install
. Avec essais et erreurs, j'ai pu le résoudre en supprimanthibernate.cfg.xml
desrc
plié et ajouter à un autre endroit. Exécuter l'application(C'est une classe principale dans mon cas). Au cours de ce que j'ai toujours l'erreur. et l'ajouter àsrc
dossier et le rhum de la classe principale.It worked!
OriginalL'auteur tadtab