15.5. War URL ハンドラー

15.5.1. 概要

OSGi コンテナーに WAR ファイルをデプロイする必要がある場合は、ここで説明するように war: を WAR URL の先頭に追加し、必要なマニフェストヘッダーを WAR ファイルに自動的に追加できます。

15.5.2. 構文

War URL は、以下の構文のいずれかを使用して指定されます。

war:warURL
warref:instructionsURL

war スキームを使用する最初の構文は、デフォルトの命令を使用してバンドルに変換される WAR ファイルを指定します。warURL には、WAR ファイルを特定する URL を指定できます。

warref スキームを使用する 2 番目の構文は、変換命令 (このハンドラーに固有の命令を含む) が含まれる Bnd プロパティーファイル instructionsURL を指定します。この構文では、参照される WAR ファイルの場所は URL に明示的に表示されません。代わりに、WAR ファイルは、プロパティーファイルの (必須の) WAR-URL プロパティーにより指定されます。

15.5.3. WAR 固有のプロパティー/命令

以下のように、.bnd 命令ファイルのプロパティーの一部は、War URL ハンドラーに固有です。

WAR-URL
(必須) バンドルに変換する War ファイルの場所を指定します。
Web-ContextPath

Web コンテナー内にデプロイされた後に、この Web アプリケーションへのアクセスに使用される URL パスを指定します。

注記

PAX Web の以前のバージョンでは、現在非推奨となっているプロパティー Webapp-Context が使用されていました。

15.5.4. デフォルトの手順

デフォルトでは、表15.2「WAR ファイルをラッピングするデフォルトの命令」 に示すように、War URL ハンドラーは WAR の META-INF/Manifest.mf ファイルにマニフェストヘッダーを追加します。

表15.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。

15.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 は、wicket-examples-1.4.7.bnd ファイルの WAR-URL プロパティーによって参照される WAR ファイルを変換し、.bnd ファイルの他の命令を使用して WAR を OSGi バンドルに変換します。

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

15.5.6. 参照資料

war URL 構文の詳細は、元の Pax URL の War Protocol ドキュメントを参照してください。