14.5. war URL 处理程序


14.5.1. 概述

如果您需要在 OSGi 容器中部署 WAR 文件,您可以通过为 war 前缀的 WAR URL 自动将必要的清单标头添加到 WAR 文件中,如下所述。

14.5.2. 语法

使用以下语法之一指定 War URL:

war:warURL
warref:instructionsURL

第一个语法(使用 war 方案)指定一个 WAR 文件,该文件使用默认指令转换为捆绑包中。warURL 可以是找到 WAR 文件的任何 URL。

第二个语法使用 warref 方案,指定第二属性文件 instructionsURL,其中包含转换指令(包括特定于此处理程序的一些指令)。在这个语法中,引用 WAR 文件的位置 不会在 URL 中明确显示。WAR 文件由属性文件中的(必需) WAR-URL 属性指定。

14.5.3. 特定于 WAR 的属性/结构

.bnd 指令文件中的一些属性特定于 War URL 处理程序,如下所示:

WAR-URL
(必需)指定要转换为捆绑包的 War 文件的位置。
Web-ContextPath

指定在 Web 容器中部署后用于访问此 Web 应用的 URL 路径的部分。

注意

PAX Web 的早期版本使用属性 Webapp-Context,它 现已弃用

14.5.4. 默认说明

默认情况下,War URL 处理程序将清单标头添加到 WAR 的 META-INF/Manifest.mf 文件中,如 表 14.2 “用于编写 WAR 文件的默认说明” 所示。

表 14.2. 用于编写 WAR 文件的默认说明
清单标头默认值

import-Package

javax.,org.xml.,org.w3c.*

export-Package

没有导出软件包。

Bundle-SymbolicName

WAR 文件的名称,其中任何不在集合中的字符 [a-zA-Z0-9_-\ . ] 替换为句点。

Web-ContextPath

没有默认值。但是 WAR 扩展器默认使用 Bundle-SymbolicName 的值。

Bundle-ClassPath

除了明确指定的任何类路径条目外,会自动添加以下条目:

  • .
  • WEB-INF/classes
  • 来自 WEB-INF/lib 目录的所有 JAR。

14.5.5. 例子

以下 War URL 在 Maven 存储库中找到 wicket-examples WAR 的 1.4.7 版本,并使用默认说明将其转换为 OSGi 捆绑包:

war:mvn:org.apache.wicket/wicket-examples/1.4.7/war

以下 Wrap URL 明确指定 Web-ContextPath

war:mvn:org.apache.wicket/wicket-examples/1.4.7/war?Web-ContextPath=wicket

以下 War URL 会将 WAR-URL 属性引用的 WAR 文件转换为 wicket-examples-1.4.7.bnd 文件中的 WAR 文件,然后使用 .bnd 文件中的其他指令将 WAR 转换为 OSGi 捆绑包:

warref:file:E:/Data/Examples/wicket-examples-1.4.7.bnd

14.5.6. 参考

有关 war URL 语法的详情,请查看原始 Pax URL 封装 协议 文档。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.