一尘不染

在Web应用程序的jpa persistence.xml中引用jar文件的正确路径是什么?

hibernate

persistence.xml看起来像这样:

<persistence-unit name="testPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <non-jta-data-source>jdbc/test</non-jta-data-source>
    <jar-file>../../lib/app-services-1.0.jar</jar-file>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
</persistence-unit>

这是一个Web项目,因此部署单元是一个war文件。我尝试引用的jar文件位于 WEB-INF / lib / 文件夹中,
persistence.xml 位于 WEB-INF / classes / META-INF 文件夹中。部署时,它只是告诉我

“警告:无法找到文件(忽略):file:… / .. / lib / app-services-1.0.jar”。

我也试过,我能想到的,即每一个可能的路径 ../lib/app-services-1.0.jarLIB /应用服务-1.0.jar

正确的做法是什么?


阅读 418

收藏
2020-06-20

共1个答案

一尘不染

以防万一有人偶然发现:jar-file-statement仅有效。当将持久性单元部署为企业归档文件(.ear)的一部分时-
在其他所有情况下(.war),persistence.xml必须驻留在/ META-INF
/中,并且不能引用持久性单元外部的类(请参阅:http : //javahowto.blogspot.com/2007/06/where-
to-put-persistencexml-in-web-
app.html)。因此,据我所知,没有办法在WEB-INF / classes / META-
INF中创建一个persistence.xml来引用不存在于WEB-INF / classs中的类。

2020-06-20