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

标签 jakarta-ee web-inf meta-inf

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

第一个是(在 war 中):

/META-INF/

第二,奇怪的一个原则:

/WEB-INF/classes/META-INF/

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

如果我将文件移到第一个meta-inf文件夹,我会从休眠中获取异常。

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

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

最佳答案

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

The jar file or directory whose META-INF directory contains the persistence.xml file is termed the root of the persistence unit. In Java EE, the root of a persistence unit may be one of the following:

  • an EJB-JAR file
  • the WEB-INF/classes directory of a WAR file
  • a jar file in the WEB-INF/lib directory of a WAR file
  • a jar file in the root of the EAR*
  • a jar file in the EAR library directory
  • an application client jar file.


*)仅对JPA 1.0有效

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

关于jakarta-ee - 两个Meta-Inf文件夹-正常结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238615/

相关文章:

java - 类文件夹显示在构建路径中,但不显示在项目资源管理器中

jdbc - 在 WEB-INF 目录中嵌入 H2 数据库

android - 需要修改系统应用程序 : original AndroidManifest. xml,但为什么呢?

java - 在安卓上使用服务加载器

java - 为什么我需要在应用程序中显式声明 REST 资源?

mysql - Java企业项目中的封装级别

java - 在 WebSocket @ServerEndpoint 中访问 HttpServletRequest 属性

jsp - 如何在 jsp 文件中使用从 servlet 传递的 bean 值

java - SpringBoot 2.0应用中src/main/resources/config/env/dev2下的文件: java. io.FileNotFoundException导致的错误

java - 如何从 META-INF 目录加载属性文件?