6

我刚刚“发现”我们有两个 Meta-Inf 文件夹......在 eclipse 和 War 文件中。

第一个是(在战争中):

/META-INF/

第二个,也是奇怪的一个:

/WEB-INF/类/META-INF/

在第二个文件夹中是一个persistance.xml 和一个something.taglib.xml ......

如果我将文件移动到第一个 meta-inf 文件夹中,我会从休眠中得到异常..

第二个奇怪的 meta-inf 文件夹的目的是什么?

这是正常的文件夹结构吗?

4

1 回答 1

7

“怪异”的位置是正确的;JSR-220/JSR-317 (Java Persistence API 1.0/2.0) 在第 6.2/8.2 节中说:

META-INF 目录包含persistence.xml 文件的jar 文件或目录称为持久单元的根。在 Java EE 中,持久单元的根可能是以下之一:

  • 一个 EJB-JAR 文件
  • WAR 文件的 WEB-INF/classes 目录
  • WAR文件的WEB-INF/lib目录下的jar文件
  • EAR 根目录中的 jar 文件*
  • EAR 库目录中的 jar 文件
  • 应用程序客户端 jar 文件。

*) 仅对 JPA 1.0 有效

因此,直接在 WAR 文件中,唯一正确的位置是WEB-INF/classes/META-INF/.

于 2012-11-05T22:28:09.417 回答