两个Meta-Inf文件夹 - 正常结构?

Nic*_*ler 5 meta-inf web-inf java-ee

我只是"发现"我们有两个Meta-Inf文件夹...在eclipse和War文件中.

第一个是(在战争中):

/ META-INF /

第二,奇怪的是:

/ WEB-INF /类/ META-INF /

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

如果我将文件移动到第一个meta-inf文件夹,我会从hibernate中获取异常.

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

这是一个普通的文件夹结构吗?

MaD*_*aDa 7

"怪异的"位置是正确的; 第6.2/8.2节中的JSR-220/JSR-317(Java持久性API 1.0/2.0)说:

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/.

  • 这当然是正常的 - 无论是否必要,我都不确定.它只是"jar"工具放置元数据的文件夹,其他工具(即Maven)有时也使用它. (2认同)