我读到 Meta-inf 应该放在 src/main/resources 下。当我在 Eclipse 中创建一个动态 Web 项目时,我似乎将 Meta-Inf 与 Web-Inf 放在了 webapp 文件夹下。
Meta-Inf 的正确位置在哪里?它必须在类路径上吗?我需要配置一个 persistence.xml 文件,不确定这是否有任何区别。
“我读到 Meta-inf 应该放在 src/main/resources 下”
不必要。但你是对的,它应该在类路径上。使用 src/main/resources,其中的所有内容(使用 maven)都会放在类路径中,而没有resources/。请记住,Dynamic Web Project 类型不是 Maven 类型的项目(尽管如果需要也可以轻松制作)。
“当我在 Eclipse 中创建动态 Web 项目时,我似乎将 Meta-Inf 与 Web-Inf 放在了 webapp 文件夹下。”
是的,这适用于 Manifest,就像任何其他罐子一样。不是类路径的 META-INF
“我需要配置一个 persistence.xml 文件”
您可以手动创建 META_INF 并将其放在 src 中(除非您将其转换为 maven 项目,否则没有主/资源)。但是,将 JPA 配置到动态 Web 项目中的最简单方法是:
请参阅有关持久性的 javaee 教程。它指出:
如果将持久性单元打包为 WAR 文件中的一组类,persistence.xml 应该位于 WAR 文件的 WEB-INF/classes/META-INF 目录中。
如果您打开导航器视图(Windows -> 显示视图 -> 导航器),您将看到带有 classes/META-INF/persistence.xml 的构建目录