WebLogic Web サービス プログラマーズ ガイド
![]() |
![]() |
![]() |
![]() |
この章では、WebLogic 固有の Web サービス デプロイメント記述子ファイル weblogic-webservices.xml
に関する情報を提供します。
Web サービスで標準の J2EE デプロイメント記述子は webservices.xml
といいます。このファイルは、WebLogic Server にデプロイされる Web サービスのセット、およびコンテナ リソースとその他のサービスに対する依存関係を指定します。このファイルの完全な説明については、「Web Services XML Schema」を参照してください。
標準の J2EE webservices.xml
デプロイメント記述子ファイルと同じ役割を持つ WebLogic デプロイメント記述子ファイルが weblogic-webservices.xml
です。このファイルには、デプロイされた Web サービスの呼び出しに使用する URL など、WebLogic Web サービスに関する WebLogic 固有の情報が格納されます。
この 2 つのデプロイメント記述子ファイルは、Web サービスを格納している J2EE アーカイブの同じ場所にあります。以下の 2 つのケースがあります。
weblogic-webservices.xml
ファイルの構造は、アーカイブ内に格納されている Web サービスをどのようにリストして識別するかという点で J2EE webservices.xml
ファイルの構造と似ています。たとえば、どちらのファイルも、アーカイブ内の各 Web サービスに対して、対応するルート要素 (J2EE webservices.xml
ファイルの場合は <webservices>
、weblogic-webservices.xml
ファイルの場合は <weblogic-webservices>
) の <webservice-description>
子要素を持っています。
通常、どちらのデプロイメント記述子ファイルも、Web サービスを実装する JWS ファイルの JWS アノテーションの値を基に jwsc
Ant タスクが自動的に生成するので、ユーザがファイルを更新する必要はありません。そのため、このセクションは参照用にのみパブリッシュされます。
weblogic-webservices.xml
ファイルの 2 つの要素 (login-config と transport-guarantee) のデータ型定義が、web.xml
ファイルの J2EE スキーマからインポートされます。この 2 つの要素とデータ型の詳細については、サーブレット デプロイメント記述子スキーマを参照してください。
以下の図では、weblogic-webservices.xml
デプロイメント記述子ファイルの要素の階層を示します。
図 12-3 weblogic-webservices.xml の要素階層
weblogic-webservices.xml
デプロイメント記述子を記述する XML スキーマ ファイルについては、http://www.bea.com/ns/weblogic/90/weblogic-jdbc.xsd を参照してください。
以下に、単純な weblogic-webservices.xml
デプロイメント記述子の例を示します。
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-webservices xmlns="http://www.bea.com/ns/weblogic/90">
<webservice-description>
<webservice-description-name>MyService</webservice-description-name>
<port-component>
<port-component-name>MyServiceServicePort</port-component-name>
<service-endpoint-address>
<webservice-contextpath>/MyService</webservice-contextpath>
<webservice-serviceuri>/MyService</webservice-serviceuri>
</service-endpoint-address>
</port-component>
</webservice-description>
</weblogic-webservices>
Web サービスのデプロイ時に WSDL をパブリックにエクスポーズするかどうかを示すブール属性です。
j2ee:login-config
要素は、使用する認証方法、このアプリケーションで使用されるレルムの名前、およびフォームによるログイン機能で必要になる属性を指定します。
j2ee:login-config
要素の XML スキーマ データ型は j2ee:login-configType
で、標準 web.xml
デプロイメント記述子を記述する J2EE スキーマで定義されます。完全なリファレンス情報については、http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd を参照してください。
デプロイメント記述子ファイルで記述されている Web サービスに関連付けられた Web サービス セキュリティ コンフィグレーション (WebserviceSecurityMBean
をインスタンス化したもの) の名前を指定します。デフォルト コンフィグレーション名は default_wss
です。
関連付けられたセキュリティ コンフィグレーションでは、ID の認証に X.509 証明書を使用するかどうか、パスワード ダイジェストを使用するかどうか、暗号化やデジタル署名にキーストアを使用するかどうかなどを指定します。
Web サービスを問題なく呼び出すことができるようにするには、Administration Console であらかじめセキュリティ コンフィグレーション (デフォルト コンフィグレーションも含む) を作成しておく必要があります。
注意 : この要素で記述される Web サービス セキュリティ コンフィグレーションは、weblogic-webservices.xml
ファイルに格納されているすべての Web サービスに提供されます。jwsc
Ant タスクは、必ず独自の JAR または WAR ファイルに Web サービスをパッケージ化するので、jwsc
Ant タスクで Web サービスを常に生成する場合、この制限は問題となりません。ただし、weblogic-webservices.xml
デプロイメント記述子を手動で更新し、Web サービスの記述を追加した場合、別のセキュリティ コンフィグレーションを別のサービスに関連付けることはできません。
<port-component>
要素は、Web サービスのポートの記述に使用する他の要素のホルダです。
<port-component>
要素の子要素では、WebLogic Server にデプロイされた Web サービスの呼び出しに使用するコンテキスト パスおよびサービス URI など、Web サービスのポートの WebLogic 固有の特性を指定します。
<port-component>
要素の <port-component-name>
子要素は、WSDL ポートの内部名を指定します。
この要素の値は、単一の weblogic-webservices.xml
ファイル内にあるすべての <port-component-name>
要素に対してユニークなものである必要があります。
<service-endpoint-address>
要素は、WebLogic 固有のコンテキスト パスとサービス URI の値をグループ化します。この値をまとめると、Web サービスのエンドポイントのアドレス、または WebLogic Server にデプロイされた Web サービスを呼び出す URL が構成されます。
これらの値は、<webservice-contextpath>
子要素および <webserivce-serviceuri>
子要素で指定します。
j2ee:transport-guarantee
要素は、Web サービスを呼び出すクライアント アプリケーションと WebLogic Server との間の通信の種類を指定します。
この要素の値は NONE、INTEGRAL、CONFIDENTIAL のいずれかです。NONE は、アプリケーションが転送の保証を必要としていないことを示します。INTEGRAL は、クライアントとサーバの間で、転送中にデータが変更されない方法でデータを転送する必要があることを示します。CONFIDENTIAL は、転送中にデータの中味を覗かれないようにデータを転送する必要があることを示します。ほとんどの場合、INTEGRAL フラグまたは CONFIDENTIAL フラグは、SSL を使用する必要があることを示します。
j2ee:transport-guarantee
要素の XML スキーマ データ型は j2ee:transport-guaranteeType
で、標準 web.xml
デプロイメント記述子を記述する J2EE スキーマで定義されます。完全なリファレンス情報については、http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd を参照してください。
<weblogic-webservices>
要素は、WebLogic 固有の Web サービス デプロイメント記述子 (weblogic-webservices.xml
) のルート要素です。
この要素は、J2EE コンポーネント アーカイブに格納されている Web サービスのセットを指定します。デプロイメント記述子も、このアーカイブに格納されています。アーカイブは、EJB JAR ファイル (ステートレス セッション EJB 実装 Web サービスの場合) または WAR ファイル (Java クラス実装 Web サービスの場合) です。
<webservice-contextpath>
要素は、Web サービスの呼び出しに使用する URL のコンテキスト パス部分を指定します。
WebLogic Server にデプロイされた Web サービスを呼び出す URL は次のとおりです。
http://host:port/contextPath/serviceURI
jwsc
Ant タスクを使用して JWS ファイルから Web サービスを生成する場合、<webservice-contextpath>
要素の値は、WebLogic 固有の @WLHttpTransport
アノテーション、または jwsc
の <WLHttpTransport>
子要素の contextPath
属性から取得されます。
<webservice-description>
要素は、Web サービスの記述に使用する他の要素のホルダです。
<webservice-description>
要素は、WSDL ドキュメントで定義された WSDL ポートに関連付けられているポート コンポーネントのセット (1 つまたは複数の <port-component>
子要素で指定) を定義します。
1 つの weblogic-webservices.xml
ファイル内に、それぞれがアーカイブ内の特定のステートレス セッション EJB または Java クラスに対応する複数の <webservice-description>
要素が定義されている場合があります。ステートレス セッション EJB に対応しているか Java クラスに対応しているかは、Web サービスの実装によって異なります。つまり、EJB JAR には Web サービスを実装する EJB、WAR ファイルには Java クラスが格納されています。
<webservice-description-name>
要素は、Web サービスの内部名を指定します。
この要素の値は、単一の weblogic-webservices.xml
ファイル内にあるすべての <webservice-description-name>
要素に対してユニークなものである必要があります。
weblogic-webservices.xml
デプロイメント記述子の要素のうち、セキュリティに関連するものをすべてグループ化するための要素です。
<webservice-serviceuri>
要素は、Web サービスの呼び出しに使用する URL の Web サービス URI 部分を指定します。
WebLogic Server にデプロイされた Web サービスを呼び出す URL は次のとおりです。
http://host:port/contextPath/serviceURI
jwsc
Ant タスクを使用して JWS ファイルから Web サービスを生成する場合、<webservice-serviceuri>
要素の値は、WebLogic 固有の @WLHttpTransport
アノテーション、または jwsc
の <WLHttpTransport>
子要素の serviceURI
属性から取得されます。
weblogic-webservices.xml
デプロイメント記述子の要素のうち、WSDL に関連するものをすべてグループ化するための要素です。
<wsdl-publish-file>
要素は、HTTP を介してアクセス可能な標準 WSDL ファイルに加え、デプロイされた Web サービスの WSDL ファイルのハードコピーのパブリッシュ先となるディレクトリ (Web サービスをホストしているコンピュータ上にあります) を指定します。
たとえば、Web サービスが EJB で実装され、WSDL ファイルが、JAR を基準にした、EJB JAR ファイルの以下のディレクトリにあるとします。
META-INF/wsdl/a/b/Fool.wsdl
さらに、weblogic-webservices.xml
ファイルに、指定した Web サービスの以下の要素が含まれているとします。
<wsdl-publish-file>d:/bar</wsdl-publish-file>
この場合、WebLogic Server が Web サービスをデプロイすると、サーバは、標準の HTTP の場所に WSDL ファイルをパブリッシュするとともに、サーバが動作しているコンピュータの以下のディレクトリに WSDL ファイルのコピーを格納します。
d:/bar/a/b/Foo.wsdl
警告 : この要素は、Web サービスを呼び出すクライアント アプリケーションがローカル ファイル システムまたは FTP で WSDL にアクセスする必要がある場合にのみ指定します。通常、「Web サービスの WSDL の参照」で説明しているように、クライアント アプリケーションは HTTP を使用して WSDL にアクセスします。
この要素の値には、ディレクトリの絶対パス名を指定する必要があります。このディレクトリは、Web サービスをデプロイする WebLogic Server インスタンスまたはクラスタをホストしているすべてのマシンに存在している必要があります。
![]() ![]() |
![]() |
![]() |