WebSphere Application Server Version 6.1 Feature Pack for Web Services   
             オペレーティング・システム: AIX , HP-UX, i5/OS, Linux, Solaris, Windows, Windows Vista, z/OS

             目次と検索結果のパーソナライズ化
             New or updated topic for this feature pack

JAX-WS アプリケーションの web.xml ファイルにある URL パターンのカスタマイズ

web.xml ファイルには、モジュール内の Web コンポーネントの構造、および外部との依存関係に関する情報が含まれ、 実行時のコンポーネントの使用方法が記述されています。 Java API for XML-Based Web Services (JAX-WS) アプリケーションの場合、 web.xml ファイル内で URL パターンをカスタマイズできます。

始める前に

JavaBeans インプリメンテーションを完了します。

このタスクについて

JAX-WS アプリケーションを Web サービスとしてパッケージする場合、 Web サービスは、Web アーカイブ (WAR) ファイル、またはエンタープライズ・アーカイブ (EAR) ファイルの WAR モジュールに含まれています。JAX-WS 有効 WAR ファイルには、以下の項目が含まれています。
  • WEB-INF/web.xml ファイル。このファイルには、Web アプリケーションを構成する Web コンポーネントの 構成およびデプロイメント情報が記述されています。
  • アノテーションを付けたクラス。このクラスは、サービス・エンドポイント実装クラスなど、アプリケーション・モジュールに含まれる Web サービスを実装します。
  • JAXB クラス
  • (オプション) アプリケーション・モジュールに含まれる Web サービスを説明する Web サービス記述言語 (WSDL) 文書。
  • (オプション) XML スキーマ・ファイル
  • (オプション) ユーティリティー・クラス
  • (オプション) Web サービス・クライアント

デフォルトの URL パターンは、Web サービス実装クラスに含まれている @WebService.serviceName 属性によって定義されます。 サービス実装クラスに関連付けられている WSDL ファイルに単一ポート定義が含まれている場合は、 デフォルトの URL パターンの使用を選択することも、web.xml ファイル内の URL パターンをカスタマイズすることもできます。 サービス実装クラスに関連付けられている WSDL ファイルに同一サービス定義内の複数のポート定義が含まれている場合は、カスタマイズした URL パターンが必要です。 サービス実装クラスに複数のポート定義が含まれているときにデフォルトの URL パターンを使用すると、 複数のサービス実装クラスが同一の URL パターンにマップされ、エラー条件が発生します。 web.xml ファイルを編集し、サービス定義別に URL パターンをカスタマイズする必要があります。 各ポートは、Web サービス実装クラスとその独自のカスタム URL パターンにマップされます。 web.xml ファイルの URL パターンをカスタマイズすることにより、 URL パターン定義の競合を訂正します。

プロシージャー

  1. サービス実装クラスに関連付けられている WSDL ファイルに含まれているのが単一ポート定義であるのか、複数のポート定義であるのかを判別します。
  2. WSDL ファイルに単一ポート定義が含まれている場合は、 web.xml ファイル内のデフォルト URL パターンを使用すべきか、あるいはデフォルト URL パターンをカスタマイズすべきかを判断します。
  3. (オプション) サービス実装クラスの URL パターンをカスタマイズするには、 web.xml ファイルを編集し、<url-pattern> エントリーを web.xml ファイルの <servlet-mapping> に付与します。
  4. WSDL ファイルに複数のポート定義が含まれている場合は、 web.xml ファイルを編集して、サービス実装クラスの各 wsdl:port エレメントが 別個の URL パターンにマップされるように URL パターンをカスタマイズします。

結果

以上で、Web サービス対応 Web アーカイブ (WAR) ファイルが作成されました。

サービス実装クラス内の単一 WSDL ポート定義

次の例では、サービス実装クラスに関連付けられている WSDL ファイルに単一ポート定義が含まれている場合に、デフォルト URL パターンと、URL パターンをカスタマイズする方法について図示しています。

これは、サンプルの Web サービス実装クラスからの抜粋です。

package com.ibm.test;
@WebService(serviceName="EchoService", portName="SOAP11EchoServicePort")
public class EchoServiceSOAP11{

これは、EchoServiceSOAP11 Web サービス実装クラスに関連付けられている WSDL ファイル からの抜粋です。

<wsdl:service name="EchoService">
	<wsdl:port name="SOAP11EchoServicePort" tns:binding="..." >
		...
</wsdl:port>
</wsdl:service>
JSR-109 によって規定されているように、 この例のデフォルト URL パターンは、@WebService.serviceName 属性を使用して 構成されています。ここで、デフォルト URL パターンは /EchoService です。

この例の URL パターンをカスタマイズする場合には、 web.xml ファイルを編集して、url-pattern エントリーを付与します。 この例では、カスタマイズ後の URL パターンは /EchoServiceSOAP11 になっています。

以下の抜粋は、サーブレットのセットアップを示すサンプル web.xml ファイルからのものです。

<servlet id="...">
	<servlet-name>com.ibm.test.EchoServiceSOAP11</servlet-name>
	<servlet-class>com.ibm.test.EchoServiceSOAP11</servlet-class>
		<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>com.ibm.test.EchoServiceSOAP11</servlet-name>
	<url-pattern>/EchoServiceSOAP11</url-pattern> ---->  Defining the URL pattern and pointing it to the service implementation class.
</servlet-mapping>

サービス実装クラス内の複数 WSDL ポート定義

次の例では、サービス実装クラスに関連付けられている WSDL ファイルに複数のポート定義が含まれている場合に必要な、URL パターンのカスタマイズについて図示しています。

以下の抜粋は、サンプルの Web サービス実装クラスからのものです。

package com.ibm.test;
@WebService(serviceName="EchoService", portName="SOAP11EchoServicePort")
public class EchoServiceSOAP11{
	...
}
package com.ibm.test;
@WebService(serviceName="EchoService", portName="SOAP12EchoServicePort")
public class EchoServiceSOAP12{
	...
}

以下の抜粋は、EchoServiceSOAP11 Web サービス実装クラスに関連付けられている WSDL ファイル からのものです。 WSDL ファイル内の各ポートは、Web サービス実装クラスの portName にマップされます。

<wsdl:service name="EchoService">
	<wsdl:port name="SOAP11EchoServicePort" tns:binding="..." >
		...
</wsdl:port>
	<wsdl:port name="SOAP12EchoServicePort" tns:binding="..." >
		...
</wsdl:port>
</wsdl:service>

このシナリオでは、WSDL ファイル内に複数のポート定義があるので、 web.xml ファイルを編集することで URL パターンをカスタマイズする必要があります。 各サービスのカスタム URL パターンを指定します。

以下の抜粋は、サーブレットのセットアップを示すサンプル web.xml ファイルからのものです。

<servlet id="...">
	<servlet-name>com.ibm.test.EchoServiceSOAP11</servlet-name>
	<servlet-class>com.ibm.test.EchoServiceSOAP11</servlet-class>
		<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>com.ibm.test.EchoServiceSOAP11</servlet-name>
	<url-pattern>/EchoServiceSOAP11</url-pattern>
</servlet-mapping>

<servlet id="...">
	<servlet-name>com.ibm.test.EchoServiceSOAP12</servlet-name>
	<servlet-class>com.ibm.test.EchoServiceSOAP12</servlet-class>
		<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>com.ibm.test.EchoServiceSOAP12</servlet-name>
	<url-pattern>/EchoServiceSOAP12</url-pattern>
</servlet-mapping>

次の作業

Java コードから、Web サービスに 対応する WAR ファイルをアセンブルします



関連タスク
JavaBeans からの Web サービス・アプリケーションの開発
Java コードからの Web サービス対応 WAR ファイルのアセンブル
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 4:10:06 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/twbs_customwebxml.html