首页 / 知识

关于java:persistence.xml在Maven测试期间未找到

2023-04-16 04:34:00

关于java:persistence.xml在Maven测试期间未找到

persistence.xml not found during maven testing

我正在尝试在进行集成测试的Maven构建期间将测试数据加载到测试数据库中。 persistence.xml已正确复制到target/test-classes/META-INF/,但是运行测试时出现此异常。

javax.persistence.PersistenceException:
No Persistence provider for
EntityManager named aimDatabase

似乎没有找到或加载persistence.xml。


使用基于Maven / Eclipse的JPA项目解决了相同的问题。

我的META-INF目录在src/main/java下,其后果是在测试阶段之前未将其复制到目标目录。

将此目录移动到src/main/resources可解决此问题,并确保在运行测试时target/classes中存在META-INF/persistence.xml文件。

我认为JPA方面将我的META-INF/persistence.xml文件放在了src/main/java中,这实际上是我的问题的根源。


我正在使用Maven2,但是我忘记在我的pom.xml文件中添加此依赖项:

1
2
3
4
5
 <dependency>
   <groupId>org.hibernate</groupId>
   hibernate-entitymanager</artifactId>
   <version>3.4.0.GA</version>
 </dependency>

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

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

如果我将persistence.xml移至src / test / resources,则无法再使用了。

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

似乎出于未知原因,目前尚不可能。 :-(


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

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

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

使用Maven,我必须在本地安装2个toplink-essentials jar,因为没有公共存储库可以保存依赖关系。


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

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

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


我们遇到了同样的问题,对项目进行了一些调整,最后找到了以下内容
问题(更清晰的错误描述):
在oracle.toplink.essentials.ejb.cmp3.persistence中。
PersistenceUnitProcessor.computePURootURL(PersistenceUnitProcessor.java:248)

利用这些信息,我们回顾了一条主要规则:
路径名中没有白色空间!

尝试一下。为我们工作的微笑。
也许有一天这将得到解决。

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


数据加载集成测试测试期间

最新内容

相关内容

猜你喜欢