我正在尝试在用于集成测试的maven构建期间将测试数据加载到测试数据库中。 persistence.xml正在被正确地复制到target/test-classes/META-INF/ ,但是在运行测试时我得到了这个异常。

javax.persistence.PersistenceException:没有名为aimDatabase的EntityManager的持久性提供程序

看起来它没有找到或加载persistence.xml。

===============>>#1 票数:16

刚刚解决了基于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 ,结果证明是我问题的根源。

===============>>#2 票数:6

我正在使用Maven2,我忘了在我的pom.xml文件中添加这个依赖项:

 <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-entitymanager</artifactId>
   <version>3.4.0.GA</version>
 </dependency> 

===============>>#3 票数:2

我遇到了同样的问题,并不是它找不到persistence.xml文件,而是找不到XML中指定的提供程序。

确保您的xml文件中具有正确的JPA提供程序依赖项和正确的提供程序定义。

即。 <provider>oracle.toplink.essentials.PersistenceProvider</provider>

有了maven,我不得不在本地安装2个toplink-essentials罐子,因为没有公共存储库可以保留依赖性。

===============>>#4 票数:2

你的persistence.xml是否位于scr / test / resources中? 因为我遇到了类似的问题。

只要我的persistence.xml位于src / main / resources中,一切都正常。

如果我将persistence.xml移动到src / test / resources则不再有效。

这里唯一有用但令人悲伤的答案是: http//jira.codehaus.org/browse/SUREFIRE-427

似乎现在不可能出于不明原因。 :-(

===============>>#5 票数:2

如果这是在Windows上,您可以使用sysinternal的procmon来查明它是否正在检查正确的路径。

只需按路径过滤 - >包含 - > persistence.xml。 Procmon将尝试打开名为persistenc.xml的文件,您可以检查以查看尝试的路径。

有关procmon的更多详细信息,请参见此处: http//technet.microsoft.com/en-us/sysinternals/bb896645.aspx

===============>>#6 票数:1

我们遇到了同样的问题,对项目做了一些调整,并最终找到了以下问题(更明确的错误描述):在oracle.toplink.essentials.ejb.cmp3.persistence。 PersistenceUnitProcessor.computePURootURL(PersistenceUnitProcessor.java:248)

有了这些信息,我们回想起了一个主要规则:路径名称中没有白色空间!

试试这个。 为我们工作微笑 也许有一天这将被修复。

希望这对你有用。 祝好运。

  ask by sblundy translate from so

未解决问题?本站智能推荐:

16回复

如何配置JPA以在Maven中进行测试

有没有办法在Maven项目中设置第二个persistence.xml文件,以便用于测试而不是用于部署的普通文件? 我尝试将一个persistence.xml放入src / test / resources / META-INF,它被复制到target / test-classes / ME
3回复

Maven不会生成“persistence.xml”文件

我在maven项目网页上阅读了这篇文章 ,其中列出了不同的目录布局(例如:src / main / resources,用于Application / Library资源)。 问题是,当我运行以下命令( 在此处找到 )时: 未创建src / main / resources / M
5回复

在maven中进行集成测试期间启动外部进程

我想要对Maven项目进行完全自动化的集成测试。 集成测试要求在运行之前启动外部(平台相关)程序。 理想情况下,外部程序将在单元测试完成后被杀死,但不是必需的。 有没有Maven插件来完成这个? 其他想法?
2回复

JPA persistence.xml类路径是否位于?

这就是我想要做的。 我在Web应用程序中使用JPA持久性,但我有一组单元测试,我想在容器外运行。 我的主要应用程序的META_INF文件夹中有我的主要persistence.xml ,它在容器(Glassfish)中运行良好。 我在test-classes目录的META-INF文件
3回复

找不到“org.eclipse.persistence”Maven依赖

我用m2eclipse maven插件安装了Eclipse Helios。 我想使用JPA创建一个应用程序。 所以,我所做的是:New> Maven Project然后我选择maven默认原型。 问题是我想添加我找不到的“org.eclipse.persistence”依赖项
2回复

如何使Eclipse JPA(Dali)在另一个项目中使用persistence.xml?

我有两个Eclipse Maven Java项目。 一个带有JPA批注的域项目和一个为该域对象实现DAO的持久项目。 持久项目取决于域项目。 Maven编译所有内容,并且一切正常。 我的JPA persistence.xml文件位于persist项目中,因此Eclipse JPA(D
2回复

如何使用JUnit创建Maven插件的自动化测试?

我开发了一个(大部分)工作插件,但由于它的功能与它处理的项目直接相关,你如何为插件开发单元和集成测试。 我最好的想法是为插件创建一个集成测试项目,该插件在其生命周期中使用插件,并且有测试报告插件在处理数据时的成功或失败。 谁有更好的想法?
2回复

Maven找不到persistence.xml

我试图做一个简单的guice持久性测试,不幸的是我得到了: 第一:我的persistence.xml位于正确的位置resources / META-INF第二:是的,我放置了正确的提供程序:org.hibernate.ejb.HibernatePersistence 有人可以帮忙吗
4回复

如何在爆炸战中包含测试类,以便使用Maven,Jetty和Spring进行集成测试?

我正在尝试使用Spring,Maven和Jetty进行集成测试。 在集成测试开始使用Maven Jetty插件和运行爆炸的预集成测试目标之前,我有一台Jetty服务器开始运行我的应用程序。 这适用于使用net.sourceforge.jwebunit.junit.WebTestCase进行测
7回复

Eclipse Maven Project中找不到persistence.xml

我无法修复persistence.xml file not found eclipse问题,这是一个简单的测试项目(Maven Nature),用于非常基本的EJB测试,该文件确实在src / main / resources / META-INF / ...这是pom.xml内容。 尝试将文