Spring app无法找到hbm.xml映射文件

时间:2010-09-10 13:24:43

标签: java hibernate spring

我正在使用hibernate开发一个spring mvc app,我在编译和运行代码时遇到了一些麻烦。

这是因为每当我尝试创建会话工厂bean时,它都找不到我的FileObject.hbm.xml。

我的bean看起来像这样

<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类型的文件吗?大多数文件格式都是这样的:name.extension

hibernate映射文件虽然似乎有所不同

后续行动:正如我之前所说,我已经尝试将我的.hbm.xml放在包括src目录在内的很多地方,但仍无法使用。

我的项目结构类似于:

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

我试图将文件放在war的根目录,WEB-INF,类中,如前所述,在我的实际src目录中。

我从来不知道只是为了让冬眠和春天成功运行这么麻烦。

2 个答案:

答案 0 :(得分:1)

MappingResources只能接收相对于类路径的路径。

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

答案 1 :(得分:0)

如果.hbm.xml文件位于CLASSPATH的目录树中,请尝试将路径从CLASSPATH的根目录开始:

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

我使用的目录路径只是一个例子。