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

时间:2012-11-05 19:04:00

标签: java-ee web-inf meta-inf

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

第一个是(在战争中):

/ META-INF /

第二,奇怪的是:

/ WEB-INF /类/ META-INF /

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

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

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

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

1 个答案:

答案 0 :(得分: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/