Liberty での OSGi HTTP Whiteboard の使用
httpWhiteboard-1.0 フィーチャーを使用して、サーブレット・テクノロジーを使用して作成されたモジュラー Web アプリケーションの開発およびデプロイメントを可能にすることができます。
始める前に
- OSGi アプリケーション・プログラミング・モデル機能を備えた最新バージョンの Liberty をインストールします。zip インストール・パッケージ (ZIP ファイル) のいずれかを使用するか、Java アーカイブ (JAR) パッケージを解凍することで、Liberty をインストールできます。Liberty のインストールについて詳しくは、『Liberty のインストール』を参照してください。
- httpWhiteboard-1.0 フィーチャーをインストールします。このフィーチャーが、ダウンロードした ZIP アーカイブ・ファイルの一部として使用可能でない場合は、以下のコマンドを使用して、Liberty リポジトリーからこのフィーチャーをインストールします。
bin¥installUtility install httpWhiteboard-1.0
Step 1 of 3: Downloading httpWhiteboard-1.0...
Step 2 of 3: Installing httpWhiteboard-1.0...
Step 3 of 3: Cleaning up temporary files...
このフィーチャーが正常にインストールされたら、このフィーチャーを使用できます。
手順
次のタスク
サーブレット・サービスの作成
Http Whiteboard 実装は、登録されている特定のタイプの OSGi サービス (例えば、javax.servlet.Servlet) を検索します。そのため、Http Whiteboard フィーチャーを使用するために、任意のサポートされる OSGi コンポーネント・モデル (Blueprint など) を使用してサービスを登録でき、そのサービスは自動的に選出されます。
以下の Blueprint の例では、javax.servlet.Servlet インターフェース下の OSGi サービス・レジストリーでのシンプルなサーブレット実装 com.my.MyWhiteboardServlet の登録を示します。また、サーブレットの相対 URL ロケーションを提供する標準 Http Whiteboard サービス・プロパティー org.http.whiteboard.servlet.pattern の下にも登録されます。
<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>
サーブレットへのアクセス
サーバーを始動するか、フィーチャーを稼働中のサーバーに追加すると、以下の例に示すようなメッセージがいくつか表示されることがあります。
[AUDIT ] CWWKE0001I: The server defaultServer has been launched.
[AUDIT ] CWWKZ0058I: Monitoring dropins for applications.
[AUDIT ] CWWKN2000A: HTTP Whiteboard context root added: /osgi/http
[AUDIT ] CWWKN2000A: HTTP Whiteboard context root added: /osgi/http/shared
[AUDIT ] CWWKT0016I: Web application available (default_host): http://localhost:9080/osgi/http/
[AUDIT ] CWWKN2000A: HTTP Whiteboard context root added: /osgi/http/MyHttpWhiteboardApp
[AUDIT ] CWWKZ0001I: Application MyHttpWhiteboardApp started in 0.424 seconds.
この例では、3 件の「HTTP Whiteboard context root added」メッセージがあります。最後のメッセージでは、アプリケーション MyHttpWhiteboardApp のコンテキスト・ルートが追加された場所が示されています。また、このアプリケーションには、前の Blueprint の例で定義したサーブレットも含まれています。/osgi/http/ で終わる Web アプリケーション URL と、Whiteboard コンテキスト・ルートの相対 URL を結合し (重複する /osgi/http/ はマージします)、osgi.http.whiteboard.servlet.pattern で指定されているサーブレットの場所を追加することで、サーブレットにアクセスできます 例えば、Web アプリケーション URL (http://localhost:9080/osgi/http/) とアプリケーションの Whiteboard コンテキスト・ルート (/osgi/http/MyHttpWhiteboardApp) をマージすると、以下のようになります。
http://localhost:9080/osgi/http/MyHttpWhiteboardApp
osgi.http.whiteboard.servlet.pattern の値を追加すると、以下の URL が得られます。http://localhost:9080/osgi/http/MyHttpWhiteboardApp/mywhiteboardservlet
他の機能との結合
Http Whiteboard 仕様は、OSGi サービスに基づいています。つまり、このフィーチャーは他のネイティブ OSGi サービスおよびコンポーネント・モデルと統合されます。例えば、Blueprint を使用して、他のサービスを動的に注入できます。Blueprint 名前空間ハンドラーおよび構成管理を使用して、構成値をサーブレットに動的に注入することで、必要に応じてアプリケーション構成を変更できます。