我只是“发现”我们有两个Meta-Inf文件夹...在eclipse和War文件中。
第一个是(在战争中):
/ META-INF /
第二,奇怪的是:
/ WEB-INF /类/ META-INF /
在第二个文件夹中是persistance.xml和something.taglib.xml ...
如果我将文件移动到第一个meta-inf文件夹中,我会从hibernate中获取异常..
第二个奇怪的meta-inf文件夹的目的是什么?
这是正常的文件夹结构吗?
答案 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/
。