1

Bonjour tout le monde,

Je suis à la recherche de quelqu'un qui a réussi à réaliser un projet JEE avec Eclipse et Hibernate, et qui se souvienne de comment il a configuré l'IDE, parce que là, je suis à la limite de péter les plombs.
J'ai créé une simple page de test qui demande à Hibernate d'aller chercher et de m'afficher des données. Je reçois une exception me disant qu'il ne trouve pas le package org.hibernate, alors qu'il est présent dans le build path, et qu'il s'affiche aussi dans les ressources du projet. Je me dis que ça peut venir du JAR concerné, dont je n'ai pas changé le nom, ce que je fais, et renseigne dans le build path. Il s'affiche aussi dans les ressources projet. Bien.
Malheureusement, cela fait aussi qu'il ne trouve plus le fichier de configuration d'Hibernate, alors que celui-ci est rigoureusement resté à la même place, et qu'il était trouvé auparavant…
Alors je remets l'ancien nom, mais du coup, c'est la compilation qui foire mur

Une idée, quelqu'un ?
avatar
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?

2

Tu utilises quoi pour tout ce qui concerne autre chose que la persistance ? (serveur d’application, etc.)
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

3

tu as un pb de classpath. Tu as ajouté hiberate au classpath pour compiler mais pas a celui du runtime.
Je sais pas ce que tu utilises pour lancer ta webapp, mais regarde la config de lancement de ta webapp si tu as pas un classpath à configurer; ajoutes-y le jar d'hibernate.

4

Plusieurs informations sont manquantes pour effectuer correctement un "diagnostic" :
- Quel serveur d'application utilises-tu ?
- Qu'appelles-tu "renseigner le build path" exactement ?
(=> s'il s'agit du build path défini du projet éclipse, ça ne sert que pour la compilation)

Tout d'abord, un projet JEE (.war, en général) a une arborescence (au moins) comme ça :
- /toutes tes ressources pages (*.jsp, *.css, *.js, etc) dans une arborescence à ta guise.
- /META-INF/*
- /WEB-INF/
- /WEB-INF/web.xml
- /WEB-INF/classes/*
- /WEB-INF/libs/*

Pour que Hibernate puisse être correctement exécuté, il faut que ta/tes librairies hibernate se trouvent dans /WEB-INF/libs/
Ensuite, dans le fichier /WEB-INF/web.xml, peut se trouver une ligne indiquant l'emplacement du fichier hibernate.cfg.xml
Le but est de placer ce fichier dans le répertoire /WEB-INF/classes/hibernate.cfg.xml, pour se faire, il suffit de placer ton fichier dans le répertoire src de ton projet.
Lorsque tu créeras le fichier .war, il placera le fichier automatiquement dans ce répertoire.

J'espère avoir été clair, si ce n'est pas le cas, n'hésites pas à poser des questions.
Rest... In... Peace

5

CoppeR (./4) :
Plusieurs informations sont manquantes pour effectuer correctement un "diagnostic" :

Pardon, c'est vrai que c'était un peu light du fait de l'état dans lequel j'ai posté ça grin
CoppeR (./4) :
- Quel serveur d'application utilises-tu ?

Glassfish Open (= non-Oracle ?), dernière version, s'il faut la version précise, je reviens demain
CoppeR (./4) :
- Qu'appelles-tu "renseigner le build path" exactement ?
(=> s'il s'agit du build path défini du projet éclipse, ça ne sert que pour la compilation)

C'est ça, du coup, je pensais que ça suffisait. Donc il me faudrait simplement mettre les .jar dans WEB-INF ? mur2

Pour ce qui est du fichier hibernate.cfg.xml, il le trouvait avant que je ne bidouille les noms de JAR… J'imaginais qu'il était placé au bon endroit par défaut… Bon, je teste tout ça demain après-midi et je vous redis

Merci
avatar
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?

6

Ymox (./5) :
Pardon, c'est vrai que c'était un peu light du fait de l'état dans lequel j'ai posté ça

Le but est surtout si quelqu'un a une information sur un bug connu d'un serveur, mais je ne pense pas que dans ton cas, ce soit ça ^^
Par exemple, JBoss intègre sa bibliothèque hibernate et même si tu mets TA version d'hibernate dans ton war, il prendra SA version (dans ce cas, il y a une option à désactiver dans l'un des fichiers de configuration, mais je ne sais plus lequel)
Ymox (./5) :
Donc il me faudrait simplement mettre les .jar dans WEB-INF ?

Presque, dans WEB-INF/lib (d'ailleurs, je viens de remarquer que j'ai fait une faute dans mon précédent post, j'ai mis "libs" au lieu de "lib" ^^).
Mais effectivement, si tu ne l'as pas fait et que tu n'utilises pas JBoss, ça peut expliquer pourquoi ça ne marche pas ^^
Rest... In... Peace

7

OK, alors j'ai fait mes tests, et voilà ce qu'il en ressort : renseigner le build path pour un projet JEE dans Eclise Helios semble copier les JAR utilisés dans le répertoire WEB-INF/lib. Donc, ça, c'était OK.
Une fois copié les fichiers hibernate.cfg.xml ainsi que mes .hbm, ça va un peu mieux. Mais par contre, j'ai systématiquement des packages qui se recréent (monpackage.dao, monpackage.base) à chaque build – dont je n'arrive pas à avoir la trace, y aurait-il moyen ? –, et les fichiers sont prévus pour Hibernate 2, alors que je travaille avec la version 3…

[Edit] Au fait, merci CoppeR
avatar
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?

8

Ymox (./7) :
Mais par contre, j'ai systématiquement des packages qui se recréent (monpackage.dao, monpackage.base) à chaque build

Comment ça "qui se recréent" ? Une fois créé tu les supprimes et après le build, il reviennent ?
Dans ce cas, je serais tenté de demander "pourquoi les supprimer ?"
Ymox (./7) :
dont je n'arrive pas à avoir la trace, y aurait-il moyen ?

Il ne me semble pas qu'il y ait des traces pour les builds (sauf si c'est fait avec ant, dans ce cas, au lancement, ça ouvre une nouvelle console)
Ymox (./7) :
les fichiers sont prévus pour Hibernate 2, alors que je travaille avec la version 3...

"Les fichiers", lesquels les *.hbm ? La grosse différence entre hibernate 2 et 3 est l'utilisation d'annotations pour ne pas avoir à coder les fichiers *.hbm.
Evidemment, ça n'empeche pas de travailler avec les fichiers *.hbm, par contre, le "format" (contenu) des fichiers restent inchangés, non ?
Ymox (./7) :
Au fait, merci CoppeR

De rien, si je peux me rendre utile ^^
Rest... In... Peace

9

CoppeR (./8) :
Ymox (./7) :
Mais par contre, j'ai systématiquement des packages qui se recréent (monpackage.dao, monpackage.base) à chaque build
Comment ça "qui se recréent" ? Une fois créé tu les supprimes et après le build, il reviennent ?

Yep
CoppeR
Dans ce cas, je serais tenté de demander "pourquoi les supprimer ?"

Parce qu'ils ne sont pas pour la bonne version d'Hibernate : packages préfixés par net.sf.hibernate au lieu de org.hibernate, et si seulement la hiérarchie des packages n'avait pas changé entre ces deux versions…
CoppeR (./8) :
Ymox (./7) :
les fichiers sont prévus pour Hibernate 2, alors que je travaille avec la version 3...

"Les fichiers", lesquels les *.hbm ? La grosse différence entre hibernate 2 et 3 est l'utilisation d'annotations pour ne pas avoir à coder les fichiers *.hbm. Evidemment, ça n'empeche pas de travailler avec les fichiers *.hbm, par contre, le "format" (contenu) des fichiers restent inchangés, non ?

Les *.hbm, hibernate.cfg.xml, ainsi que les sources java crées automatiquement. J'ai dû foirer quelque chose quand j'ai installé les outils de gestion d'Hibernate, ou ces outils ne sont pas à jour.

[Edit] faute d'accord
avatar
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?

10

Ah ok, tu as installé un plug-in pour hibernate...
Dans ce cas, tu dois pouvoir le désactiver, voir le configurer pour une version 3 d'hibernate. Par contre, sur ce point, je ne pourrais pas t'aider.

En tout cas, je ne savais pas qu'ils avaient changé les nom de package entre les 2 versions, vu que j'utilise toujours l'autocompletion...
Rest... In... Peace