class path resource [com/xxx/entity/User.hbm.xml] cannot be opened because it doesn't exist
今天写SSH项目的时候遇到的一个问题,花费了我好长时间才解决,特此记录:
1.clean项目重新加载Tomcat.
2.检查导入hibernate的映射文件的方法是否正确。
如果不清楚怎么导入,请看我转的一篇博客:
hibernate之maping映射:http://www.cnblogs.com/Jxiaobai/p/6866167.html
3.检查xxx.hbm.xml文件的class中的name全路径是否正确。
有时候你通过逆向工程的生成的的映射文件的全类名和你映射文件的包名是不同的,请注意。
4检查classes编译文件夹的同名目录下是否存在你的映射文件。
因为Spring在加载映射文件时加载的是你classes编译文件夹下的配置文件而不是你src目录下的。
我就是在这一步出问题了。
classes目录下只有class字节码文件并没有与之对应的xml文件,
我将其手动复制进去,只要一clean,文件就又被清除了。我百思不得其解。
直到我在网上找的了这篇博客:http://www.cnblogs.com/wbb2109/p/3999247.html
[原]Maven项目编译后classes文件中没有.xml问题
根据博主的提醒:我在pom文件中加上了。
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources>
虽然 [com/xxx/entity/User.hbm.xml]找到了,但是又报ApplicationContext.xml找不到。
于是我又加了一段话、
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>*</include> </includes> <filtering>true</filtering> </resource> </resources>
问题解决。