gpt4 book ai didi

java - Google 应用程序引擎 WEB-INF 和 META-INF

转载 作者:行者123 更新时间:2023-12-01 21:57:39 27 4
gpt4 key购买 nike

当您使用 Google-Eclipse 插件创建新的Web 应用程序项目时,它会为您创建整个项目目录结构,包括:

src/
META-INF/
jdoconfig.xml
persistence.xml
war/
WEB-INF/
lib/
web.xml
...etc.

首先,我的理解是 META-INF/ 仅适用于实用程序 JAR,不适用于 Web 应用程序 (WAR)。所以在项目中看到src/META-INF/*让我大吃一惊。但后来我看到了 GAE Web 应用程序的示例,其打包方式如下:

TheWebApp.war/
WEB-INF/
lib/
classes/
META-INF/
web.xml
...
blah.jsp
...etc/

使用WEB-INF/classes/META-INF/!除此之外,我没有看到任何提及 GAE 项目和 MANIFEST.MF 目录,我总是看到它打包在 META-INF 下使用。现在我真的很困惑。

所以我想我首先需要确认/澄清META-INFWEB-INF的一般作用,然后了解它们如何一起使用在任何 Web 应用程序的 WAR 中,然后了解 GAE 在其 WAR 结构上放置的任何特性(如果存在)。

注意:我不使用 Maven,并且至少在接下来的 6 - 12 个月内不打算使用(我只是现在没有时间学习它)。因此,如果这些问题的任何答案取决于您是否使用基于 Maven 的 buld,那么我更喜欢非 Maven 答案,因为我使用的是 Ant/Ivy。

所以我问:

  1. 对于实用程序(库)JAR、可执行 JAR 和 WAR,META-INF 目录的正常内容是什么? MANIFEST.MF 对于 WAR(GAE 和非 GAE 都一样)来说是必需的,为什么或为什么不?
  2. 我应该将非 Web 资源放在哪里,以便运行时类路径可以使用它们?例如,假设我有 environment.propertiesmyapp-custom-resource-config.xml...我应该把它们放在哪里?在WEB-INF/WEB-INF/classesWEB-INF/classes/META-INF中?其他地方?
  3. GAE 项目的 WEB-INFMETA-INF 目录的正确内容是什么?打包它们的正确方法是什么?

提前致谢。

最佳答案

与 JAR 文件 META-INF 目录一样,根级/META-INF 目录包含应用程序 list 文件。它还可以包含特定 Web 容器或应用程序服务器的资源。例如,Apache Tomcat 在此目录中查找并使用 context.xml 文件来帮助自定义应用程序在 Tomcat 中的部署方式。

与 JAR 文件不同,根级/META-INF 目录不在应用程序类路径上。您无法使用ClassLoader来获取该目录中的资源。但是,/WEB-INF/classes/META-INF 位于类路径上。您可以将所需的任何应用程序资源放置在此目录中,并且可以通过类加载器访问它们。

关于java - Google 应用程序引擎 WEB-INF 和 META-INF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14583136/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com