2010-09-10 73 views
1

我正在使用休眠的春天mvc應用程序,我編譯和運行我的代碼有一些麻煩。春季應用程序不能找到hbm.xml映射文件

這是因爲每當我嘗試創建會話工廠bean時,都找不到我的FileObject.hbm.xml。

我的豆看起來像這樣

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource1"></property> 
    <property name="mappingResources"> 
     <list> 
      <value>FileObject.hmb.xml</value> 
     </list> 
    </property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.hbm2ddl.auto">create</prop> 
     </props> 
    </property> 
</bean> 

而且FileObject.hmb.xml駐留在我的WAR文件夾的根。我試圖將這個文件移動到不同的文件夾,包括實際的src文件夾,並在會話工廠中提供正確的路徑,但它仍然給我一個FileNotFoundException。

這是因爲java沒有識別hello.hmb.xml類型的文件?如果不是所有的文件格式是這樣的:。擴展名

Hibernate映射文件似乎是不同的,雖然

後續:正如我前面提到的,我試圖把我的.hbm。 XML在許多地方,包括src目錄,仍然不會工作。

我的項目結構類似於此:

project structure http://static.springsource.org/docs/Spring-MVC-step-by-step/images/dir-structure-endp1.png

我試圖把文件戰爭的根目錄,WEB-INF,班內,如之前所說,在我的實際src目錄。

我從來不知道這是爲了讓hibernate和spring成功運行這麼多麻煩。

+1

是一個錯字? 「hmb.xml」而不是「hbm.xml」 – 2010-09-10 13:38:19

+0

嗨,這是一個錯字。 im我的代碼其hbm – jonney 2010-09-10 13:49:48

+0

*我試圖把文件放在戰爭的根目錄,WEB-INF,類*這不是一個隨機的選擇,映射文件必須在類路徑上(即在'WEB-INF /類下正如大家所指出的那樣。這就是事情的工作方式。 – 2010-09-11 10:29:19

回答

1

MappingResources只能接收相對於您的類路徑的路徑。

http://forum.springsource.org/showthread.php?t=87988

+0

什麼是適當的方式? – jonney 2010-09-10 13:50:18

+0

看到編輯,鏈接包括 – 2010-09-10 13:56:21

+0

我做了,OP有一個不同的例外,然後我。我的例外是它不能找到文件,即FileNotFoundException。 – jonney 2010-09-10 14:23:32

0

如果的.hbm.xml文件在您的CLASSPATH目錄樹,嘗試把從CLASSPATH的根開始的路徑:我用

<value>foo/bar/persistence/hibernate/FileObject.hmb.xml</value> 

目錄路徑就是一個例子。