2009-12-17 5 views
0

J'utilise Hibernate dans une application côté serveur semblable à une extension, et je place mes fichiers binaires dans le dossier Extensions de l'application serveur. Le problème est que si je lance le serveur, le dossier racine est le dossier racine de l'application serveur, et non la racine des binaires. Ainsi, Hibernate recherche le fichier de configuration dans ce dossier, et il essaie de trouver les classes de ce dossier. Je suppose que cela est lié à la JVM, car le serveur le lance. Le fichier de configuration n'est pas un problème, car je peux simplement copier mes fichiers de configuration, mais tous les chemins sont invalides. Par conséquent, dans mon fichier de mappage généré, j'ai une classe org.gmate.data.SomeClass.java, mais elle ne le trouvera pas.Définir le dossier racine Hibernate

Ma question: existe-t-il un moyen, solution ou solution de contournement, que je puisse définir le dossier racine d'Hibernate comme dossier Extension, afin qu'il commence à recevoir les classes à partir de là?

Merci pour toutes les réponses à l'avance, Gmate

Répondre

0

J'ai finalement trouvé la solution à mon problème. Le problème n'était pas le dossier racine supposé comme je le pensais, mais le chargeur de classe que le serveur utilise. Comme c'était dans mon dossier Extensions, un CustomClassLoader a chargé mes classes. et ils ne sont pas apparus dans le classpath. Comme j'ai déplacé mes clsses dans un fichier jar et ajouté ce fichier jar au classpath, j'ai réussi à utiliser hibernate. L'ajout du dossier Extension au classpath a entraîné le chargement de ces classes avec SystemClassLoader, mais les avantages du Custom ClassLoader ont disparu.