最代码官方
2018-03-23 00:25:57
IntelliJ IDEA下如何设置maven项目中hbm xml文件到编译发布目录文件夹下
今天在IntelliJ IDEA下运行一个maven项目,该项目是s2sh开发的,hibernate是用的很早的hbm xml设置的bean和mysql数据库映射关系,一路配置完成后,发现运行是抛出如下异常:
Caused by: org.hibernate.MappingNotFoundException: resource: cn/itcast/entity/SysCode.hbm.xml not found at org.hibernate.cfg.Configuration.addResource(Configuration.java:665) at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1679) at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1647) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1626) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1600) at org.hibernate.cfg.Configuration.configure(Configuration.java:1535) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:642) at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1469) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409) ... 59 more
而在hibernate.cfg.xml配置文件中,该hbm xml文件的路径设置是正确的,而且文件也确实存在
然后在debug模式在断点,查看hibernate启动加载hbm xml文件的类时,发现他是在target目录去查找的文件
该目录下确实没有对应的hbm xml文件
于是通过搜索找到解决方案,因为该项目是maven项目,需要maven build发布到target目录,所以通过设置pom.xml就可以解决
<build> <finalName>jk1107</finalName> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build>
再次build或者run项目就成功了。
enjoy it,遇到问题不要只看到表面,大部分原因是因为你个人姿势不对,而不是外部环境原因。
评论
最近浏览
plokmn LV3
2023年3月27日
sttsss LV1
2022年12月14日
taoshen95 LV15
2022年5月8日
zzh161516 LV1
2022年3月19日
小洪123 LV4
2021年9月12日
最代码-宋家辉 LV61
2021年8月22日
dawnguarda LV17
2021年4月11日
anny小兔兔000 LV1
2021年3月20日
18204960914 LV1
2021年3月13日
2544575350 LV1
2021年1月23日