Web 片段

开发 Web 应用程序时,如果多个 Web 模块使用相同的组件,请考虑在 Web 片段 Java 归档 (JAR) 文件中包含组件。 Web 片段 JAR 文件包含配置元数据和组件类文件。此实践会简化从应用程序到应用程序的复制。

Web 模块部署描述符片段(Web 片段)提供 web.xml 文件所提供的相同配置元数据,但它们作为打包在 WEB-INF/lib 目录下 JAR 文件中的 web-fragment.xml 文件存在。

框架开发人员提供包含在使用该特定框架的 Web 应用程序中的 JAR 文件。如果该框架使用 servlet、过滤器或其他 Web 模块配置,那么 Web 片段可以仅需将 JAR 文件拖放到应用程序中,而无需更改现有 Web 模块配置。 以前,Web 应用程序开发人员需要使用框架所需的其他元数据来增强其配置。 其他用例为之前提及的跨 Web 模块使用相同组件的需求。此外,通过使用 Web 片段,更易于使用模拟对象或存根。

扫描 Web 片段会降低片段检查其 web-fragment.xml 文件的各个 JAR 文件的性能。Web 应用程序中的 JAR 文件越多,对性能产生的影响越大。 如果性能影响了需求,请通过将 metadata-complete 设置为 true 来禁用 Web 片段的扫描,并在 web.xml 文件中包含任何所需配置。
避免故障 避免故障: 禁用扫描 Web 片段也会禁用扫描注释。因此,如果您需要扫描 Web 片段或注释,请对这两者进行扫描。gotcha
要点: 将 web.xml 文件中的 metadata-complete 元素设置为 true 以禁用片段扫描。在 web.xml 文件中使用 absolute-ordering 标记强制执行扫描 Web 片段的顺序,或扫描 Web 片段子集。 在 web-fragment.xml 文件中使用 relative-ordering 标记,以指定与其他片段相关的顺序。
如果您不知道 Web 片段中包含的 servlet、过滤器或安全性约束,那么在 Web 应用程序中包括片段可能会意外对端点产生安全风险。验证所有配置的 servlet、过滤器和安全性约束按预期运行。
避免故障 避免故障: 如果 Web 片段中存在冲突,那么应用程序将不会部署。如果安装应用程序时存在冲突,请查看 SystemOut.log 文件以了解哪些项发生冲突。gotcha
注: 本主题引用了一个或多个应用程序服务器日志文件。作为另一种建议采用的方法,您可以在分布式系统和 IBM® i 系统上配置服务器以使用高性能可扩展日志记录 (HPEL) 记录和跟踪基础结构,而不使用 SystemOut.logSystemErr.logtrace.logactivity.log 文件。您还可以将 HPEL 与本机 z/OS® 日志记录设施结合使用。如果要使用 HPEL,那么可从服务器概要文件 bin 目录使用 LogViewer 命令行工具来访问所有日志和跟踪信息。有关使用 HPEL 的更多信息,请参阅有关使用 HPEL 对应用程序进行故障诊断的信息。
在 Servlet 3.0 规范中合并 Web 片段和注释的一般规则:
  • 如果 JAR 文件在 WEB-INF/lib 目录中,那么仅扫描注释或 Web 片段元数据的 JAR 文件。不会扫描注释或 Web 片段元数据的共享库。
  • 位于 WEB-INF/classes 目录中的类中的注释会首先合并,并优先于 WEB-INF/lib 目录中的任何元数据。
  • 在 WEB-INF/lib 目录中的所有 JAR 文件都被视为 Web 片段,无论它们是否包含 web-fragment.xml 文件。 如果 web-fragment.xml 文件不存在于 JAR 文件中,那么它被视为具有隐式的空 web-fragment.xml 文件。
  • 将 WEB-INF/lib 目录中的每个 JAR 文件的注释合并到对应的 web-fragment.xml 文件后,再检查是否存在冲突 Web 片段。因此,不同片段中的注释冲突可防止部署应用程序。
  • 如果您定义 Web 片段排序,那么一个 Web 片段的注释和 Web 片段元数据都会在顺序排在其后的另一个片段之前合并。
  • 由于 WEB-INF/lib 目录中所有 JAR 文件都被视为片段,因此 <absolute-ordering> 元素中的 <others> 元素会应用到排序中其他位置未提及的所有 JAR 文件。
 

指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cweb_webfragments
文件名:cweb_webfragments.html