Hibernate + Ressort - mappage xml pas trouvé
J'ai simple application avec la structure de dossiers suivante:
- ProjFolder
- |-----src
- |----------packagename
- |---------------{sourcefiles}
- |----------META-INF
- |---------------{beans.xml}
- |---------------{hibernate.cfg.xml}
- |---------------{EntityMapping.hbm.xml}
voici la partie de beans.xml Printemps de fichier de config:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:./META-INF/jdbc.properties" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:./META-INF/hibernate.cfg.xml" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>classpath:./META-INF/EntityMapping.hbm.xml</value>
</list>
</property>
</bean>
<tx:annotation-driven transaction-manager="txManager" />
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
quand je commence mes tests unitaires-je obtenir de l'exception suivante:
org.springframework.les haricots.usine.BeanCreationException: Erreur
la création de haricot avec le nom "wrapperClass" défini dans le chemin de classe de ressource
[META-INF/beans.xml]: Impossible de résoudre référence au bean "wrapperClassField'
pendant le réglage d'un argument du constructeur; nested exception est
org.springframework.les haricots.usine.BeanCreationException: Erreur
la création de haricot avec le nom "xmlBooksource" défini dans le chemin de classe de ressource
[META-INF/beans.xml]: Impossible de résoudre référence aux haricots
'sessionFactory" alors que le réglage de haricot propriété "sessionFactory'; imbriqué
exception est org.springframework.les haricots.usine.BeanCreationException:
Erreur lors de la création de haricots avec le nom "sessionFactory" défini dans le chemin de classe
ressource [META-INF/beans.xml]: Invocation de la méthode d'initialisation a échoué;
nested exception java.io.FileNotFoundException: le chemin de classe de ressource
[classpath:/META-INF/EntityMapping.hbm.xml] ne peut pas être ouvert car il n'existe pas
La même exception est levée lorsque je tape
<property name="mappingResources">
<list>
<value>EntityMapping.hbm.xml</value>
</list>
</property>
Pourquoi le printemps n'arrive pas à trouver ce fichier et comment je dois remplir son emplacement pour rendre ce code fonctionne?
Merci d'avance.
- Comme je l'ai écrit au début de la question - oui. META-INF est un sous-dossier de la src, donc je peux supposer que l'inclure dans sourcepath l'habitude de résoudre le problème
- La droite. Avez-vous essayé de supprimer les
classpath:
préfixe? En regardant le code, qui setter s'attend à un classpath de ressources déjà. La chaîne est ensuite envoyéeClassLoader.getResourceAsStream(String)
. - merci! Il résout le problème.
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé de supprimer les
classpath:
préfixe? En regardant le code Hibernate, lemappingResources
setter s'attend à ce passe les cordes ànouveau ClassPathResource(String)
. Cela s'attend à ce classpath ressources déjà. La chaîne est ensuite envoyéechargeur de classe.getResourceAsStream(String)
. Ce code serait dépouiller le "classpath:" le préfixe de l'avant de la chaîne de ressource.Je ne suis pas sûr que le message d'erreur est compatible avec la beans.xml le contenu que vous avez posté.
Dans l'erreur que vous avez
ce qui n'est pas le même que
Avis disparus "." au début dans l'erreur.
La deuxième beans.xml configuration, devrait probablement produire un message d'erreur différent avec:
Ce serait de rechercher le fichier dans la racine de votre application compilée (jar, war, a explosé, qu'avez-vous).
J'ai réussi à configurer Hibernate 4 avec le Printemps 3.1. Mon applicationContext.xml le fichier est à l'intérieur de dossier web-inf et a la suite hibernate cofiguration:
et je n'ai séparé hibernate.cfg.xml fichier à l'intérieur de mon dossier src. Je suis à l'aide d'Eclipse Juno Java EE version.