在maven测试期间找不到persistence.xml
我正在尝试在用于集成测试的maven构建期间将测试数据加载到测试数据库中。 persistence.xml正在被正确地复制到target/test-classes/META-INF/
,但是在运行测试时我得到了这个exception。
javax.persistence.PersistenceException:没有名为aimDatabase的EntityManager的持久性提供程序
看起来它没有找到或加载persistence.xml。
刚刚使用基于Maven / Eclipse的JPA项目解决了同样的问题。
我在src/main/java
下有我的META-INF目录,并且在测试阶段之前没有将它复制到目标目录。
将此目录移动到src/main/resources
解决了该问题,并确保在运行测试时META-INF/persistence.xml
文件存在于target/classes
中。
我认为 JPA方面把我的META-INF/persistence.xml
文件放在src/main/java
,结果certificate是我问题的根源。
我正在使用Maven2,我忘了在我的pom.xml文件中添加这个依赖项:
org.hibernate hibernate-entitymanager 3.4.0.GA
如果这是在Windows上,您可以使用sysinternal的procmon来确定它是否正在检查正确的路径。
只需按路径过滤 – >包含 – > persistence.xml。 Procmon将尝试打开名为persistenc.xml的文件,您可以检查以查看尝试的路径。
有关procmon的更多详细信息,请参见此处: http : //technet.microsoft.com/en-us/sysinternals/bb896645.aspx
我遇到了同样的问题,并不是它找不到persistence.xml文件,而是找不到XML中指定的提供程序。
确保您的xml文件中具有正确的JPA提供程序依赖项和正确的提供程序定义。
即。
有了maven,我不得不在本地安装2个toplink-essentialsjar子,因为没有公共存储库可以保留依赖性。
我们遇到了同样的问题,对项目进行了一些调整,并最终找到了以下问题(更明确的错误描述):在oracle.toplink.essentials.ejb.cmp3.persistence。 PersistenceUnitProcessor.computePURootURL(PersistenceUnitProcessor.java:248)
有了这些信息,我们回想起了一条主要规则:道路名称中没有白色空间!
尝试这个。 为我们工作微笑 。 也许有一天这个问题会得到解决。
希望这对你有用。 祝你好运。
你的persistence.xml是否位于scr / test / resources中? 因为我遇到了类似的问题。
只要我的persistence.xml位于src / main / resources中,一切正常。
如果我将persistence.xml移动到src / test / resources就不再有效了。
唯一有用但令人悲伤的答案是: http : //jira.codehaus.org/browse/SUREFIRE-427
似乎现在不可能出于不明原因。 🙁