11.2 web.xmlの作成
ここでは,Webリソースで使用するWARファイルに含まれるweb.xmlについて説明します。
ファイル名称は"web.xml"とし,WARファイルを構成するWEB-INFディレクトリの直下に格納します。web.xmlの格納は必須です。
Webサービスの実行に必要な定義およびweb.xmlの例について説明します。
- <この節の構成>
- (1) Webサービスの実行に必要な定義
- (2) web.xmlの例
(1) Webサービスの実行に必要な定義
web.xmlは,次に示す条件を満たすように作成してください。
- バージョン
web.xmlのバージョンは,2.5以上にしてください。
- サーブレット
web-app要素に,次に示すservlet要素を含めてください。
<servlet>
<servlet-name>CosminexusJaxrsServlet</servlet-name>
<servlet-class>
com.cosminexus.jersey.spi.container.servlet.ServletContainer
</servlet-class>
</servlet> |
- サーブレット初期化パラメタ
servlet要素に,次に示すinit-param要素を必要に応じて含めてください。init-param要素は大文字小文字を区別します。
<init-param>
<param-name>
com.sun.jersey.config.property.packages
</param-name>
<param-value>
セミコロン,コンマ,またはスペースで区切られたパッケージ名のリスト
</param-value>
</init-param> |
servlet要素にinit-param要素を含める場合,init-param要素で指定したパッケージとそのサブパッケージに含まれるWebリソースを公開します。servlet要素にinit-param要素を含めない場合,WARに含まれるすべてのWebリソースを公開します。
- 注意
- com.sun.jersey.config.property.packagesの<param-value>に,*(アスタリスク)は使用できません。
- アスタリスクを使用した場合,または間違ったパッケージ名を指定した場合,エラーになります(KDJJ10020-E)。HTTPエラーコードには500が返ります。
- サーブレットマッピング
web-app要素以下にservlet-mapping要素を記述してください。
servlet-mapping要素の記述例を次に示します。
<servlet-mapping>
<servlet-name>CosminexusJaxrsServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping> |
(2) web.xmlの例
web.xmlの例を次に示します。
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>CosminexusJaxrsServlet</servlet-name>
<servlet-class>
com.cosminexus.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>org.test.resources1;org.test.resources2</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>CosminexusJaxrsServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app> |
バージョン2.5のweb.xmlを作成する場合は,web-app要素のversion属性を"2.5"に,xsd:schemaLocation属性の二つ目のロケーション情報を"http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"にしてください。
この例で,WARファイルにorg.test.resources1.ResourceA, org.test.resources1.ResourceB, org.test.resources2.ResourceC,およびorg.test.resources3.ResourceDを含んでいると仮定すると,公開されるWebリソースは次のとおりです。
- ResourceA
- ResourceB
- ResourceC