XML映射我有以下文件夹结构简单的应用:休眠+春 - 没有找到
- ProjFolder
- | ----- SRC
- | --------- -packagename
- | --------------- {} sourcefiles
- | ---------- META-INF
- | ----- ---------- {beans.xml}
- | - -------------- {hibernate.cfg.xml}
- | --------------- {EntityMapping.hbm.xml}
这里是beans.xml的Spring配置文件的一部分:
<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>
当我开始我的单元测试我得到以下异常:
org.springframework.beans.factory.BeanCreationException:错误 在类路径中定义名称'wrapperClass'创建bean resourc e [META-INF/beans.xml]:设置构造函数参数时无法解析对bean'wrapperClassField' 的引用;嵌套的异常是 org.springframework.beans.factory.BeanCreationException:错误 在类路径资源 [META-INF/beans.xml]中创建名称为'xmlBooksource'的Bean:无法在设置时解析对bean的引用 'sessionFactory' bean属性'sessionFactory';嵌套0异常是org.springframework.beans.factory.BeanCreationException: 在类路径中定义名称为'sessionFactory'的Bean时出错 资源[META-INF/beans.xml]:调用init方法失败; 嵌套异常是java.io.FileNotFoundException:类路径资源 [类路径:/META-INF/EntityMapping.hbm.xml]不能被打开,因为它不存在
相同抛出异常时i型
<property name="mappingResources">
<list>
<value>EntityMapping.hbm.xml</value>
</list>
</property>
为什么春季不能找到这个文件,以及如何填写它的位置,以使此代码工作?
在此先感谢。
正如我在问题开始时写的 - 是的。 META-INF是src的子文件夹,所以我可以假设将它包含到源路径中不会解决问题 – Grook
正确。你有没有尝试删除'classpath:'前缀?在查看代码时,该setter期待已经有一个类路径资源。然后该字符串被传递给'ClassLoader.getResourceAsStream(String)'。 – Gray
@格雷谢谢!它解决了这个问题。 – Grook