2009-09-15 7 views
1

Donc, je prends Enunciate pour un tour et j'ai rencontré un problème lorsque ma servlet démarre. Pour une raison quelconque, malgré le dossier étant là, dans le classpath, et tout être correctement spécifié, Spring me dit ce qui suit:Ressort ne trouvant pas le fichier de mappages Hibernate

[email protected]:36:31 ERROR org.springframework.web.context.ContextLoader - Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/spring-user-config.xml]: Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [WEB-INF/classes/resources/hibernate.xml] cannot be opened because it does not exist 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1336) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:471) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:220) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381) 
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:831) 
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:720) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490) 
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1150) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:448) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433) 
Caused by: java.io.FileNotFoundException: class path resource [WEB-INF/classes/resources/hibernate.xml] cannot be opened because it does not exist 
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:142) 
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:656) 

La structure est que j'ai applicationContext.xml (généré par Enunciate), web. xml et spring-user-config.xml dans WEB-INF puis hibernate.xml sur WEB-INF/classes/resources. J'ai essayé tout cela, les chemins relatifs et absolus, en utilisant "classpath:", et je ne peux pas penser à aucune autre raison pour laquelle il ne serait pas trouvé.

C'est là que le haricot sessionFactory est déclarée dans mon dossier ressort utilisateur config.xml:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
     <property name="dataSource"> 
      <ref local="dataSource"/> 
     </property> 
     <property name="hibernateProperties"> 
      <ref bean="exampleHibernateProperties"/> 
     </property> 
     <!-- Must references all OR mapping files. --> 
     <property name="mappingResources" value="WEB-INF/classes/resources/hibernate.xml"> 
     </property> 
</bean> 

Toute aide pour que cela fonctionne serait les gars ont grandement apprécié!

Merci d'avance.

Répondre

3

Essayez juste

<property name="mappingResources" value="resources/hibernate.xml" /> 
+1

homme, ce que je pensais. C'était ça. Merci beaucoup. Passez une bonne journée. –

+0

Je suis heureux d'aider –

1

Juste pour ajouter, ma configuration Eclipse n'a pas ajouté répertoire WEB-INF/classes et je ne savais pas qu'il était à la recherche de ce fichier ici. S'il y en a d'autres qui sont aux prises avec ce problème (cela me coûte quelques heures de fiddling/googling!), Créez le répertoire WEB-INF/classes et copiez tous les fichiers de ressources Hibernate (ou un sous-répertoire, comme spécifié dans mappingResources).

+0

Vous avez absolument raison. J'ai traversé la même douleur. Je dois créer manuellement le dossier WEB-INF/classes afin de le faire fonctionner uniquement en développement. – huahsin68

1

Si ur utiliser un IDE mieux placer le hibernate.xml dans l'exécution Source folder.In il ajoute automatiquement au classpath et dans la configuration, vous pouvez simplement ajouter classpath:

<property name="mappingResources"> 
<value> classpath:hibernate.xml </value> 
    </property> 
Questions connexes