使用 Liberty 中的 OSGi HTTP 白板

可以使用 httpWhiteboard-1.0 功能部件来允许开发和部署使用 Servlet 技术编写的模块化 Web 应用程序。

开始之前

要使用 httpWhiteboard-1.0 功能部件,您必须已安装 LibertyhttpWhiteboard-1.0 功能部件。
  • 安装具有 OSGi 应用程序编程模型功能的最新版本的 Liberty。您可以使用其中一个 zip 安装软件包(zip 文件)或通过解压缩 Java 归档 (JAR) 软件包来安装 Liberty。有关安装 Liberty 的更多信息,请参阅安装 Liberty
  • 安装 httpWhiteboard-1.0 功能部件。如果所下载的 ZIP 归档文件中未提供此功能部件,请使用以下命令从 Liberty Repository 安装此功能部件:
    bin\installUtility install httpWhiteboard-1.0
安装进行时,您将看到下列消息:
步骤 1(共 3 步)正在下载 httpWhiteboard-1.0...
步骤 2(共 3 步):正在安装 httpWhiteboard-1.0...
步骤 3(共 3 步):正在清除临时文件...

成功安装此功能部件之后,可以使用此功能部件。

过程

下一步做什么

编写 servlet 服务

HTTP 白板实现将查找已注册的特定类型的 OSGi 服务,例如 javax.servlet.Servlet。因此,要使用 HTTP 白板功能部件,您可以使用任何受支持的 OSGi 组件模型(例如 Blueprint)来注册服务,系统会自动采用该服务。

以下 Blueprint 示例显示简单的 Servlet 实现,即,在 javax.servlet.Servlet 接口下的 OSGi 服务注册表中注册 com.my.MyWhiteboardServlet。此服务还会在标准 HTTP 白板服务属性 org.http.whiteboard.servlet.pattern 下进行注册,此属性提供该 Servlet 的相对 URL 位置。
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
	<bean id="MyWhiteboardServletBean"
		class="com.my.MyWhiteboardServlet" />
	<service id="MyWhiteboardServletBeanService"
		ref="MyWhiteboardServletBean"
		interface="javax.servlet.Servlet" />
		<service-properties>
			<entry key="osgi.http.whiteboard.servlet.pattern"
				value="/mywhiteboardservlet" />
		</service-properties>
	</service>
</blueprint>
访问 servlet
启动服务器或将功能部件添加到正在运行的服务器时,您可能会看到一些消息,如以下示例所示:
[AUDIT   ] CWWKE0001I: 已启动服务器 defaultServer。
[AUDIT   ] CWWKZ0058I: 正在监视应用程序的 dropins。
[AUDIT   ] CWWKN2000A: 已添加 HTTP 白板上下文根:/osgi/http
[AUDIT   ] CWWKN2000A: 已添加 HTTP 白板上下文根:/osgi/http/shared
[AUDIT   ] CWWKT0016I:可用的 Web 应用程序 (default_host):http://localhost:9080/osgi/http/
[AUDIT   ] CWWKN2000A: 已添加 HTTP 白板上下文根:/osgi/http/MyHttpWhiteboardApp
[AUDIT   ] CWWKZ0001I: 应用程序 MyHttpWhiteboardApp 已在 0.424 秒内启动。
在此示例中,有 3 条“已添加 HTTP 白板上下文根”消息。最后一条消息说明添加应用程序 MyHttpWhiteboardApp 的上下文根的位置。该应用程序还包含上一 Blueprint 示例中定义的 Servlet。您可以通过将以 /osgi/http/ 结尾的 Web 应用程序 URL 与白板上下文根的相对 URL 进行组合(合并交叉的 /osgi/http/),然后追加 osgi.http.whiteboard.servlet.pattern 中指定的 Servlet 的位置,来访问 Servlet。例如,将 Web 应用程序 URL (http://localhost:9080/osgi/http/) 与应用程序的白板上下文根 (/osgi/http/MyHttpWhiteboardApp) 进行合并可得到以下内容:
http://localhost:9080/osgi/http/MyHttpWhiteboardApp
添加 osgi.http.whiteboard.servlet.pattern 的值将生成以下 URL:
http://localhost:9080/osgi/http/MyHttpWhiteboardApp/mywhiteboardservlet
与其他功能组合

HTTP 白板规范基于 OSGi 服务。这意味着,此功能部件可与其他本机 OSGi 服务和组件模型集成。例如,可以使用 Blueprint 来动态地插入其他服务。可以使用 Blueprint 名称空间处理程序和配置管理在 Servlet 中动态地插入配置值,从而允许根据需要更改应用程序配置。


用于指示主题类型的图标 任务主题

文件名:twlp_osgi_httpwhiteboard.html