Fusion Middleware Oracle WebLogic Server WebLogic Webサービス・リファレンス

11gリリース1 (10.3.6)

B61641-04(原本部品番号:E13750-05)

目次

タイトルおよび著作権情報

はじめに

- ドキュメントのアクセシビリティについて

- 表記規則

1 リファレンスのトピックの概要

2 Antタスク・リファレンス

- WebLogic WebサービスAntタスクの概要

- WebサービスAntタスクの使用

- WebLogic Antタスクのクラスパスの設定

- WSDLおよびXMLスキーマ・ファイルの操作時におけるオペレーティング・システムの大文字/小文字の区別の違い

- clientgen

- Taskdefのクラス名

- 例

- 子要素

- binding

- xmlcatalog

- 属性

- WebLogic固有のclientgen属性

- clientgenに適用される標準のAnt属性および要素

- jwsc

- Webサービスの呼出しに使用されるトランスポートの指定

- WebLogic Webサービスのコンテキスト・パスの定義

- 呼び出されるWebサービスのクライアント・アーティファクトの生成

- 既存のエンタープライズ・アプリケーションまたはWebアプリケーションの更新

- Taskdefのクラス名

- 例

- jwsc Antタスクの属性と子要素

- WebLogic固有のjwsc属性

- jwscに適用される標準のAnt属性および子要素

- jws

- module

- WLHttpTransport

- WLHttpsTransport

- WLJMSTransport

- clientgen

- descriptor

- jwsfileset

- binding

- wsdlc

- Taskdefのクラス名

- 例

- 子要素

- binding

- xmlcatalog

- 属性

- WebLogic固有のwsdlc属性

- wsdlcに適用される標準のAnt javac属性

- wsdlget

- Taskdefのクラス名

- 例

- 子要素

- 属性

3 JWSアノテーション・リファレンス

- JWSアノテーション・タグの概要

- Webサービス・メタデータ・アノテーション(JSR-181)

- JAX-WSアノテーション(JSR-224)

- JAXBアノテーション(JSR-222)

- 共通のアノテーション(JSR-250)

- WebLogic固有のアノテーション

- weblogic.jws.AsyncFailure

- 説明

- 属性

- 例

- weblogic.jws.AsyncResponse

- 説明

- 属性

- 例

- weblogic.jws.Binding

- 説明

- 属性

- 例

- weblogic.jws.BufferQueue

- 説明

- 属性

- 例

- weblogic.jws.Callback

- 説明

- 例

- weblogic.jws.CallbackMethod

- 説明

- 属性

- 例

- weblogic.jws.CallbackService

- 説明

- 属性

- 例

- weblogic.jws.Context

- 説明

- 例

- weblogic.jws.Conversation

- 説明

- 属性

- 例

- weblogic.jws.Conversational

- 説明

- 属性

- 例

- weblogic.jws.FileStore

- 説明

- 属性

- weblogic.jws.MessageBuffer

- 説明

- 属性

- 例

- weblogic.jws.Policies

- 説明

- 例

- weblogic.jws.Policy

- 説明

- 属性

- 例

- weblogic.jws.ReliabilityBuffer

- 説明

- 属性

- 例

- weblogic.jws.ReliabilityErrorHandler

- 説明

- 属性

- 例

- weblogic.jws.ServiceClient

- 説明

- 属性

- 例

- weblogic.jws.StreamAttachments

- 説明

- 例

- weblogic.jws.Transactional

- 説明

- 属性

- 例

- weblogic.jws.Types

- 説明

- 属性

- 例

- weblogic.jws.WildcardBinding

- 説明

- 属性

- 例

- weblogic.jws.WildcardBindings

- 説明

- weblogic.jws.WLHttpTransport

- 説明

- 属性

- 例

- weblogic.jws.WLHttpsTransport

- 説明

- 属性

- 例

- weblogic.jws.WLJmsTransport

- 説明

- 属性

- 例

- weblogic.jws.WSDL

- 説明

- 属性

- 例

- weblogic.jws.security.CallbackRolesAllowed

- 説明

- 属性

- 例

- weblogic.jws.security.RolesAllowed

- 説明

- 属性

- 例

- weblogic.jws.security.RolesReferenced

- 説明

- 例

- weblogic.jws.security.RunAs

- 説明

- 属性

- 例

- weblogic.jws.security.SecurityRole

- 説明

- 属性

- 例

- weblogic.jws.security.SecurityRoleRef

- 説明

- 属性

- 例

- weblogic.jws.security.UserDataConstraint

- 説明

- 属性

- 例

- weblogic.jws.security.WssConfiguration

- 説明

- 属性

- 例

- weblogic.jws.soap.SOAPBinding

- 説明

- 属性

- 例

- weblogic.jws.security.SecurityRoles (非推奨)

- 説明

- 属性

- 例

- weblogic.jws.security.SecurityIdentity (非推奨)

- 説明

- 属性

- 例

- weblogic.wsee.jws.jaxws.owsm.SecurityPolicies

- 説明

- 例

- weblogic.wsee.jws.jaxws.owsm.SecurityPolicy

- 説明

- 属性

- 例

- weblogic.wsee.wstx.wsat.Transactional

- 説明

- 属性

- 例

4 Webサービスの信頼性のあるメッセージングのポリシー・アサーションに関するリファレンス

- Webサービスの信頼性のあるメッセージングのアサーションを含むWS-Policyファイルの概要

- Webサービスの信頼性のあるメッセージングのアサーション - バージョン1.2および1.を含むWS-Policyファイル1

- グラフィカルな表現

- Webサービスの信頼性のあるメッセージングのアサーション1.2および1.1を含むWS-Policyファイルの例

- 要素の説明

- wsp:Policy

- wsrmp:RMAssertion

- wsrmp:SequenceSTR

- wsrmp:SequenceTransportSecurity

- wsrmp:DeliveryAssurance

- Webサービスの信頼性のあるメッセージングのアサーション - バージョン1.0(非推奨)を含むWS-Policyファイル

- グラフィカルな表現

- Webサービスの信頼性のあるメッセージングのアサーションを含むWS-Policyファイルの例

- 要素の説明

- beapolicy:Expires

- beapolicy:QOS

- wsrm:AcknowledgementInterval

- wsrm:BaseRetransmissionInterval

- wsrm:ExponentialBackoff

- wsrm:InactivityTimeout

- wsrm:RMAssertion

5 WebサービスのMakeConnectionポリシー・アサーションに関するリファレンス

- MakeConnectionアサーションを含むWS-Policyファイルの概要

- WebサービスのMakeConnectionを含むWS-Policyファイル

- グラフィカルな表現

- MakeConnectionおよびWS-Policy 1.5を含むWS-Policyファイルの例

- 要素の説明

- wsp:Policy

- wsmc:MCSupported

6 Oracle Webサービス・セキュリティ・ポリシー・アサーションのリファレンス

- セキュリティ・アサーションを含むポリシー・ファイルの概要

- グラフィカルな表現

- セキュリティ要素のあるポリシー・ファイルの例

- 要素の説明

- CanonicalizationAlgorithm

- Claims

- Confidentiality

- ConfirmationMethod

- DigestAlgorithm

- EncryptionAlgorithm

- Identity

- 整合性

- KeyInfo

- KeyWrappingAlgorithm

- Label

- Length

- MessageAge

- MessageParts

- SecurityToken

- SecurityTokenReference

- SignatureAlgorithm

- SupportedTokens

- Target

- TokenLifeTime

- Transform

- UsePassword

- MessagePartsを使用した暗号化または署名を必要とするSOAPメッセージの部分指定

- XPath 1.0

- 定義済みのwsp:Body()関数

- WebLogic固有のHeader関数

7 WebLogic Webサービス・デプロイメント記述子要素のリファレンス

- weblogic-webservices.xmlの概要

- グラフィカルな表現

- XMLスキーマ

- weblogic-webservices.xmlデプロイメント記述子ファイルの例

- 要素の説明

- acknowledgement-interval

- base-retransmission-interval

- buffer-retry-count

- buffer-retry-delay

- callback-protocol

- deployment-listener-list

- deployment-listener

- exposed

- flowType

- http-flush-response

- http-response-buffersize

- login-config

- inactivity-timeout

- mbean-name

- name

- operation

- port-component

- port-component-name

- reliability-config

- retransmission-exponential-backoff

- sequence-expiration

- service-endpoint-address

- stream-attachments

- transport-guarantee

- transaction-timeout

- validate-request

- version

- weblogic-webservices

- webservice-contextpath

- webservice-description

- webservice-description-name

- webservice-security

- webservice-serviceuri

- webservice-type

- wsat-config

- wsdl

- wsdl-publish-file

Oracle® Fusion Middleware

Oracle WebLogic Server WebLogic Webサービス・リファレンス

11gリリース1 (10.3.6)

B61641-04(原本部品番号:E13750-05)

2011年11月

WebLogic Webサービスを開発するためのリファレンス情報を提供する、ソフトウェア開発者向けのドキュメント。

Oracle Fusion Middleware Oracle WebLogic Server WebLogic Webサービス・リファレンス, 11gリリース1 (10.3.6)

B61641-04

Copyright © 2007, 2011, Oracle and/or its affiliates.All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション（人的傷害を発生させる可能性があるアプリケーションを含む）への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性（redundancy）、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

はじめに

「はじめに」では、このガイド『Oracle WebLogic Server WebLogic Webサービス・リファレンス』で使用されているドキュメント・アクセシビリティ機能および表記規則を説明します。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

Oracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。

表記規則

このドキュメントでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

斜体

イタリックは、ユーザーが特定の値を指定するプレースホルダー変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 リファレンスのトピックの概要

この章では、WebLogic Webサービスを開発するソフトウェア開発者に役立つリファレンス情報を示します。

次の表は、このドキュメントに記載されているトピックの要約を示します。

表1-1 WebLogic Webサービス・リファレンスのトピック

リファレンスのトピック

内容

第2章「Antタスク・リファレンス」

WebLogic WebサービスAntタスク。

第3章「JWSアノテーション・リファレンス」

Webサービスを実装するJWSファイルで使用できるJWSアノテーション。

第4章「Webサービスの信頼性のあるメッセージングのポリシー・アサーションに関するリファレンス」

WebLogic Webサービスの信頼性のあるメッセージング機能を構成するためにWS-Policyファイルに追加できるポリシー・アサーション。

第5章「WebサービスのMakeConnectionポリシー・アサーションのリファレンス」

WebLogic WebサービスのMakeConnection機能を構成するためにWS-Policyファイルに追加できるポリシー・アサーション。

第6章「Oracle Webサービス・セキュリティ・ポリシー・アサーションのリファレンス」

独自のOracleセキュリティ・ポリシー・スキーマを使用してWebLogic Webサービスのメッセージ・レベルのセキュリティ(デジタル署名と暗号化)を構成するためにWS-Policyファイルに追加できるポリシー・アサーション。

注意: 『Oracle WebLogic Server WebLogic Webサービスの保護』のメッセージ・レベルのセキュリティの構成に関する項の説明に従って、OASIS WS-SecurityPolicyの仕様に準拠したファイルを使用することもできます。

第76章「WebLogic Webサービス・デプロイメント記述子要素のリファレンス」

WebLogic固有のWebサービス・デプロイメント記述子weblogic-webservices.xmlの要素。

WebLogic Webサービスの概要、サンプル、および関連ドキュメントについては、『Oracle WebLogic Server WebLogic Webサービスの紹介』を参照してください。

2 Antタスク・リファレンス

この章では、WebLogic Web services Antタスクのリファレンス情報を提供します。

この章の内容は以下のとおりです。

- WebLogic WebサービスAntタスクの概要

- WebサービスAntタスクの使用

- clientgen

- jwsc

- wsdlc

- wsdlget

開発環境でこれらのAntタスクを統合して使用し、Webサービス、およびWebサービスを呼び出すクライアント・アプリケーションをプログラミングする方法の詳細は、次のマニュアルを参照してください。

- 『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』

- 『Oracle WebLogic Server JAX-RPC Webサービス・スタート・ガイド』

WebLogic WebサービスAntタスクの概要

Antは、makeコマンドに似たJavaベースのビルド・ツールですが、その機能ははるかに強力です。Antは、XMLベースの構成ファイル(デフォルトではbuild.xml)を使用してJavaで記述されたタスクを実行します。Webサービスに関する重要なアーティファクトを生成する際に、様々なAntタスクを利用できます。

Apache Webサイトでは、EAR、WAR、EJB JARファイルをパッケージ化するための他の便利なAntタスクも提供されています。詳細は、http://jakarta.apache.org/ant/manual/にあるApache Antマニュアルを参照してください。

注意:
Apache JakartaのWebサイトでは、Antの最新バージョンに関するオンライン・ドキュメントのみを公開しています。このAntは、WebLogic Serverに同梱されているものとはバージョンが異なる可能性があります。WebLogic Serverに同梱されているAntのバージョンを判断するには、WebLogic環境の設定後、次のコマンドを実行します。

prompt> ant -version

特定のバージョンのAntのドキュメントを参照するには、http://archive.apache.org/dist/ant/binaries/からAntのzipファイルをダウンロードして、ドキュメントを展開します。

次の表では、Oracleが提供するWebサービスAntタスクの概要について説明します。

表2-1 WebLogic WebサービスAntタスク

Antタスク

説明

clientgen

Serviceスタブなど、Webサービスの呼出しに使用するクライアント側アーティファクトを生成します。

jwsc

Java Webサービス(JWS)アノテーション付きファイルをWebサービスにコンパイルします。

wsdlc

WSDLファイルを基にWebサービスの部分的な実装を生成します。

wsdlget

WSDLとインポートされたXMLターゲット(XSDおよびWSDLファイル)をローカル・ディレクトリにダウンロードします。

WebサービスAntタスクの使用

次の表では、WebサービスAntタスクを使用するための手順をまとめています。

表2-2 Web Services Antタスクの使用の手順

#

手順

説明

1

環境を設定します。

Windows NTでは、ドメイン・ディレクトリにあるsetDomainEnv.cmdコマンドを実行します。WebLogic Serverドメインのデフォルトの場所は、MW_HOME\user_projects\domains\domainName。MW_HOMEはOracle製品の最上位のインストール・ディレクトリで、domainNameはドメインの名前です。

UNIXでは、ドメイン・ディレクトリにあるsetDomainEnv.shコマンドを実行します。WebLogic Serverドメインのデフォルトの場所は、MW_HOME/user_projects/domains/domainName。MW_HOMEはOracle製品の最上位のインストール・ディレクトリ、domainNameはドメインの名前。

2

WebサービスAntタスクの呼出しを含むbuild.xmlというファイルを作成します。

以下に、cleanというターゲットを1つ指定した簡単なbuild.xmlファイルの例を示します。

<project name="my-webservice">
<target name="clean">
<delete>
<fileset dir="tmp" />
</delete>
</target>
</project>

このcleanターゲットにより、tmpサブディレクトリ内のすべてのファイルが削除されます。build.xmlファイルでAntタスクを指定する例は後の項で紹介します。

3

実行するWebLogic WebサービスAntタスクごとに、<taskdef>要素および<target>要素を使用して、適切なタスク定義とターゲットをbuild.xmlファイルに追加します。

次の例では、jwsc Antタスクをビルド・ファイルに追加する方法を示します。ここでは、分かりやすくするためにタスクの属性を省いています。

<taskdef name="jwsc"
classname="weblogic.wsee.tools.anttasks.JwscTask" />
<target name="build-service">
<jwsc attributes go here...>
...
</jwsc>
</target>

注意: それぞれのAntタスクに対する<taskdef>要素のname属性値を変更すれば、WebLogic WebサービスAntタスクに任意の名前を付けることができます。このドキュメントでは、整合性を考慮してjwsc、clientgen、wsdlcおよびwsdlgetという名前に統一しています。

4

build.xmlファイルに指定されたAntタスクを実行します。

build.xmlファイルと同じディレクトリで antと入力し、ターゲットを指定します。例:

prompt> ant build-service

5

Webサービスを呼び出すURLに使用するコンテキスト・パスとサービスURIを指定します。(オプション)

WebLogic Webサービスのコンテキスト・パスの定義の説明に従って、この情報をいくつかの方法で設定可能です。

WebLogic Antタスクのクラスパスの設定

各WebLogic Antタスクには、新しいディレクトリまたはJARファイルを現在のCLASSPATH環境変数に追加できるように、classpath属性または要素を受け取ります。

次の例では、jwsc Antタスクのclasspath属性を使用して、新しいディレクトリをCLASSPATH変数に追加する方法を示します。

<jwsc srcdir="MyJWSFile.java"
classpath="${java.class.path};my_fab_directory"
...
</jwsc>

次の例では、<classpath>要素を使用してCLASSPATHに追加する方法を示します。

<jwsc ...>
<classpath>
<pathelement path="${java.class.path}" />
<pathelement path="my_fab_directory" />
</classpath>
...
</jwsc>

次の例では、WebLogic WebサービスAntタスク宣言の外でCLASSPATH変数をビルドしてから、<classpath>要素を使用してタスク内でその変数を指定する方法を示します。

<path id="myClassID">
<pathelement path="${java.class.path}"/>
<pathelement path="${additional.path1}"/>
<pathelement path="${additional.path2}"/>
</path>
<jwsc ....>
<classpath refid="myClassID" />
...
</jwsc>

注意:
Weblogic ServerのJava Antユーティリティでは、 WL_HOME\server\binディレクトリ(WL_HOMEはWeblogic Serverがインストールされている最上位ディレクトリ)にあるant (UNIX)またはant.bat (Windows)構成ファイルを使用して各種のAnt固有変数を設定します。これらのAnt変数を更新する必要がある場合、使用しているオペレーティング・システム用の構成ファイルを変更します。

WSDLおよびXMLスキーマ・ファイルの操作時におけるオペレーティング・システムの大文字/小文字の区別の違い

WebLogic WebサービスのAntタスクの多くには、WSDLまたはXMLスキーマ・ファイルなどのファイルを指定するために使用できる属性があります。

Antタスクは、それらのファイルを大文字と小文字を区別して処理します。つまり、XMLスキーマ・ファイルで名前が大文字と小文字の点でのみ異なるユーザー定義の2つの型(たとえばMyReturnTypeとMYRETURNTYPE)が指定されている場合、clientgen Antタスクは、ユーザー定義データ型のJava表現に対応する2つの別々のJavaソース・ファイル・セット(MyReturnType.javaとMYRETURNTYPE.java)を適切に生成します。

ただし、それらのソース・ファイルをそれぞれのクラス・ファイルにコンパイルすると、AntタスクをMicrosoft Windowsで実行する場合に問題が生じる場合があります。Windowsでは、大文字と小文字の区別をしないためです。つまり、Windowsでは、ファイルMyReturnType.javaとMYRETURNTYPE.javaが同じ名前と判断されます。したがって、Windowsでファイルをコンパイルすると、2番目のクラス・ファイルが最初のクラス・ファイルを上書きしてしまい、クラス・ファイルが1つしか残りません。しかしAntタスクは2つのクラスがコンパイルされたものと認識しているので、次のようなエラーが発生することになります。

c:\src\com\bea\order\MyReturnType.java:14:
class MYRETURNTYPE is public, should be declared in a file named   MYRETURNTYPE.java
public class MYRETURNTYPE
^

この問題を回避するには、この種の名前の競合が起こらないようにXMLスキーマを書き換えるか、あるいはそれが不可能な場合は、UNIXなどの大文字と小文字を区別するオペレーティング・システムでAntタスクを実行します。

clientgen

clientgen Antタスクは、クライアント・アプリケーションがWebLogic Webサービスと非WebLogic Webサービスの両方の呼出しに使用できるクライアント・コンポーネント・ファイルを既存のWSDLファイルから生成します。

JAX-WS Webサービスに対して生成されるアーティファクトには次のものがあります。

- 呼出しの対象となる特定のWebサービスに対するServiceインタフェース実装のJavaクラス。

- JAXBデータ・バインディング・アーティファクト。

- WSDLファイルで指定されたユーザー定義XMLスキーマ・データ型のJavaクラス。

JAX-RPC Webサービスに対して生成されるアーティファクトには次のものがあります。

- 呼出しの対象となる特定のWebサービスに対するStubおよびServiceインタフェース実装のJavaクラス。

- WSDLファイルで指定されたユーザー定義XMLスキーマ・データ型のJavaソース・コード。

- Javaのユーザー定義のデータ型と、WSDLファイル内で指定されたそのデータ型に対応するXMLスキーマ型の間のマッピングに関する情報を格納するJAX-RPCマッピング・デプロイメント記述子ファイル。

- WSDLファイルのクライアント側のコピー。

次の2種類のクライアント・アプリケーションが、Webサービスを呼び出すためにclientgenの生成されたアーティファクトを使用します。

- Java Platform, Enterprise Edition (Java EE)バージョン5クライアント・コンテナを使用しないスタンドアロンのJavaクライアント。

- EJB、JSP、Webサービスなど、Java EEクライアント・コンテナを使用するJava EEクライアント。

通常、clientgenのdestDir属性を使って、すべてのアーティファクトの生成先ディレクトリを指定してから、javac Antタスクで生成されたJavaファイルをコンパイルします。ただし、AntタスクでJavaファイルをコンパイルし、特定のJARファイルにその他の生成アーティファクトとともにパッケージ化する場合、clientgenのdestFile属性を使用できます。destFileおよびdestDirの両方を指定することはできませんが、いずれか1つを指定する必要があります。

次の項では、clientgen Antタスクの詳細について説明します。

- Taskdefのクラス名

- 例

- 子要素

- 属性

Taskdefのクラス名

<taskdef name="clientgen"
classname="weblogic.wsee.tools.anttasks.ClientGenTask" />

例

<taskdef name="clientgen"
classname="weblogic.wsee.tools.anttasks.ClientGenTask" />
...
<target name="build_client">
<clientgen
wsdl="http://example.com/myapp/myservice.wsdl"
destDir="/output/clientclasses"
packageName="myapp.myservice.client"
serviceName="StockQuoteService" />
<javac ... />
</target>

サンプルのbuild_clientターゲットが実行されるときに、clientgenは、wsdl属性で指定したWSDLファイルを使用して、serviceName属性で指定したWebサービスの呼出しに必要なクライアント側アーティファクトをすべて生成します。clientgen Antタスクは、すべてのアーティファクトを/output/clientclassesディレクトリに生成します。生成されたJavaコードは、すべてmyapp.myservice.clientパッケージにあります。clientgenが終了すると、javac Antタスクは、clientgenが生成したJavaコード、および生成されたアーティファクトを使用してユーザーのビジネス・コードを格納する独自のクライアント・アプリケーションのJavaコードをコンパイルします。

clientgen Antタスクで生成されたアーティファクトをコンパイルおよびパッケージ化する場合、次に示すようにdestDirではなく、destFile属性を指定します。

<clientgen
wsdl="http://example.com/myapp/myservice.wsdl"
destFile="/output/jarfiles/myclient.jar"
packageName="myapp.myservice.client"
serviceName="StockQuoteService" />

上の例の場合、build.xmlファイルでclientgenの後にjavac Antタスクを指定する必要はありません。これは、Javaコードがすでにコンパイルされているためです。

通常は、Webにデプロイされ、HTTPを使用してアクセスされるWSDLファイル上でclientgen Antタスクを実行します。しかし場合によっては、jwsc Antタスクによって生成されたWARまたはJARファイルなどのアーカイブ・ファイルにパッケージ化された静的なWSDLファイル上でclientgenを実行することが必要になります。その場合は、以下のwsdl属性の構文を使用する必要があります。

wsdl="jar:file:archive_file!WSDL_file"

ここで、archive_fileはアーカイブ・ファイルの(カレント・ディレクトリに対して)完全なまたは相対的な名前、WSDL_fileはアーカイブ・ファイルのルート・ディレクトリに対して相対的なWSDLファイルのフルパス名を表します。例:

<clientgen
wsdl="jar:file:output/myEAR/examples/webservices/simple/SimpleImpl.war!/WEB-INF/SimpleService.wsdl"
destDir="/output/clientclasses"
packageName="myapp.myservice.client"/>

上記の例では、clientgenをSimpleService.wsdlという静的なWSDLファイル上で実行する方法を示しています。このWSDLファイルはSimpleImpl.warというWARファイルのWEB-INFディレクトリ内にパッケージ化されています。WARファイルはbuild.xmlファイルが格納されているディレクトリのoutput/myEAR/examples/webservices/simpleサブディレクトリにあります。

標準のAnt <sysproperty>のネストされた要素を使用して、有効なWebLogic Serverユーザーのユーザー名およびパスワード(Webサービスに対してアクセス制御が有効化されている場合)、または信頼性のある証明書を格納するクライアント側のトラスト・ストアの名前などのJavaプロパティを設定できます。次に例を示します。

<clientgen
wsdl="http://example.com/myapp/mySecuredService.wsdl"
destDir="/output/clientclasses"
packageName="myapp.mysecuredservice.client"
serviceName="SecureStockQuoteService"
<sysproperty key="javax.net.ssl.trustStore"
value="/keystores/DemoTrust.jks"/>
<sysproperty key="weblogic.wsee.client.ssl.stricthostchecking"
value="false"/>
<sysproperty key="javax.xml.rpc.security.auth.username"
value="juliet"/>
<sysproperty key="javax.xml.rpc.security.auth.password"
value="secret"/>
</clientgen>

上の例では、クライアント・アーティファクトの生成対象であるWebサービスがJAX-RPCに基づいていることを前提としています。次の例では、type属性を使用してWebサービスがJAX-WSに基づいていることを指定する方法を示します。

<clientgen
type="JAXWS"
wsdl="http://${wls.hostname}:${wls.port}/JaxWsImpl/JaxWsImplService?WSDL"
destDir="/output/clientclasses"
packageName="examples.webservices.jaxws.client"/>

子要素

clientgen Antタスクには、次のWebLogic固有の子要素があります。

- binding

- xmlcatalog

clientgen Antタスクで設定可能な、標準のAnt javacタスクに関連する要素のリストについては、「clientgenに適用される標準のAnt属性および要素」を参照してください。

binding

<binding>子要素は、次のいずれかを指定するために使用します。

- 1つまたは複数のカスタマイズ・ファイル(JAX-WSの場合)。このファイルには、1つまたは複数の次の要素を指定します。

- JAX-WSおよびJAXBカスタム・バインディング宣言。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のバインディング宣言を使用したXML Schema-to-Javaマッピングのカスタマイズに関する項を参照してください。

- SOAPハンドラ・ファイル。詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のSOAPメッセージ・ハンドラの作成と使用に関する項を参照してください。

- JAX-RPCの場合、1つ以上のXMLBeans構成ファイル(慣例により、.xsdconfigで終わります)。Webサービスで、パラメータまたは戻り値としてApache XMLBeans(http://xmlbeans.apache.org/)データ型を使用している場合、この要素を使用します。

<binding>要素は、標準のAnt <Fileset>要素に似ており、同じ属性をすべて持ちます。指定可能な属性の完全なリストの詳細は、http://ant.apache.org/manual/Types/fileset.htmlにある、Fileset要素に関するApache Antのドキュメントを参照してください。

注意:
<binding>要素は、WebLogic Server 10.0から非推奨になった<xsdConfig>要素にかわるものです。

xmlcatalog

注意:
<xmlcatalog>子要素はJAX-WSにのみ適用されます。JAX-RPCには適用されません。

<xmlcatalog>子要素には、組込みXMLカタログのIDを指定します。要素の構文は次のとおりです。

<xmlcatalog refid="id"/>

<xmlcatalog>によって参照されるIDは、組込みXMLカタログのIDと一致していなければなりません。build.xmlファイルにXMLカタログを組み込むには、次の構文を使用します。

<xmlcatalog id="id">
<entity publicid="public_id" location="uri"/>
</xmlcatalog>

上の構文で、public_idには元のXMLリソース(WSDLまたはXSD)のパブリックIDを指定し、uriには置換XMLリソースを指定します。

以下の例は、XMLカタログを組み込んでclientgenを使用して参照する方法を示しています。関連するコード行は太字で示しています。

<target name="clientgen">
<clientgen
type="JAXWS"
wsdl="${wsdl}"
destDir="${clientclasses.dir}"
packageName="xmlcatalog.jaxws.clientgen.client"
catalog="wsdlcatalog.xml">
<xmlcatalog refid="wsimportcatalog"/>
</clientgen>
</target>
<xmlcatalog id="wsimportcatalog">
<entity publicid="http://helloservice.org/types/HelloTypes.xsd"
location="${basedir}/HelloTypes.xsd"/>
</xmlcatalog>

詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のXMLカタログの使用に関する項を参照してください。

属性

次の項の表では、clientgen Antタスクの属性について説明します。また、各属性について、JAX-WSまたはJAX-RPC Webサービス(あるいは両方)で有効かどうかも示します。clientgen Antタスクで設定可能な、標準のAnt javacタスクに関連する属性のリストについては、「clientgenに適用される標準のAnt属性および要素」を参照してください。

WebLogic固有のclientgen属性

表2-3 WebLogic固有のclientgen Antタスクの属性

属性

説明

データ型

必須?

JAX-WS/JAX-RPC/両方

autoDetectWrapped

clientgen Antタスクでドキュメント・リテラルWebサービスのパラメータと戻り値の型がwrappedかbareかを判別するかどうかを指定します。

WSDLファイルを解析してクライアント・スタブを作成する場合、clientgen Antタスクは、XMLスキーマ要素の名前や操作とパラメータの名前などに基づいて、ドキュメント・リテラルWebサービスがwrappedパラメータを使用するかbareパラメータを使用するかを判別し、戻り値の型を識別します。これらのコンポーネント名がどのように照合されるかによって、clientgen Antタスクは、パラメータがwrappedかbareかを推定します。ただし、Antタスクでパラメータの型が常にbareと推定されるように指定することもできる。この場合、autoDetectWrapped属性をFalseに設定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueです。

ブール

いいえ

JAX-RPC

catalog

外部XMLカタログ・ファイルを指定します。XMLカタログ・ファイルの作成の詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のXMLカタログの使用に関する項を参照してください。

String

いいえ

JAX-WS

copyWsdl

WSDLをclientgenタスクの宛先ディレクトリ内のどこにコピーするかを制御します。

ブール

いいえ

JAX-WS

destDir

clientgen Antタスクがクライアント・ソース・コード、WSDLファイル、クライアント・デプロイメント記述子ファイルを生成するディレクトリ。

この属性は、任意のディレクトリに設定できます。ただし、EJB、JSP、または別のWebサービスからWebサービスを呼び出すクライアント・コンポーネント・ファイルを生成する場合、この属性は通常、共有クラスを保持するJava EEコンポーネントのディレクトリ(たとえば、EJBの場合はMETA-INF、Webアプリケーションの場合はWEB-INF/classes、エンタープライズ・アプリケーションの場合はAPP-INF/classes)に設定します。スタンドアロン・クライアントからWebサービスを呼び出す場合は、ユーザーのクライアント・アプリケーション・コードと同じソース・コード・ディレクトリ階層内にクライアント・コンポーネント・ファイルを生成できます。

String

destFileまたはdestDirのいずれかの属性を指定する必要があります(両方は指定できません)。

両方

destFile

clientgenタスクがクライアント・ソース・コード、コンパイル済みクラス、WSDL、およびクライアント・デプロイメント記述子ファイルをパッケージ化する展開されたディレクトリまたはJARファイルの名前。この属性を指定すると、clientgen Antタスクは、すべてのJavaコードもクラス・ファイルにコンパイルします。

JARファイルを作成または更新するには、myclientjar.jarなど、JARファイルの指定時に.jar接尾辞を使用します。属性値が.jar接尾辞を持たない場合、clientgenタスクは、ディレクトリ名のことを指しているものと解釈します。

存在しないJARファイルまたはディレクトリを指定すると、clientgenタスクは新しいJARファイルまたはディレクトリを作成します。

String

destFileまたはdestDirのいずれかの属性を指定する必要があります(両方は指定できません)。

両方

failonerror

clientgen Antタスクが、エラー発生時にも実行し続けるかどうかを指定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrue (エラーが発生しても、clientgenが実行し続けることを意味します)。

ブール

いいえ

両方

generateAsyncMethods

clientgen Antタスクが、クライアント・アプリケーションがWebサービス操作を非同期的に呼び出すために使用できるメソッドを、生成されたスタブに格納するかどうかを指定します。

たとえば、True(デフォルト値)を指定し、WSDLにgetQuoteというWebサービス操作がある場合、clientgen AntタスクはgetQuoteAsyncというメソッドもスタブに生成するので、クライアント・アプリケーションは元のgetQuoteメソッドのかわりにこのメソッドを呼び出します。この非同期的な種類の操作には、クライアント・アプリケーションが非同期プロパティやコンテキスト変数などを設定するための追加パラメータ(weblogic.wsee.async.AsyncPreCallContextデータ型)も含まれます。

注意: Webサービス操作が一方向としてマークされている場合、generateAsyncMethods属性を明示的にTrueに設定しても、clientgen Antタスクは非同期的な種類のスタブを生成しません。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueで、非同期メソッドが生成されることを示します。

ブール

いいえ

JAX-RPC

generatePolicyMethods

clientgen Antタスクが、WS-Policyのロード・メソッドを、生成されたスタブに格納するかどうかを指定します。これらのメソッドにより、クライアント・アプリケーションはローカルWS-Policyファイルをロードできます。

Trueを指定した場合、getXXXSoapPort()(XXXはWebサービス名)という4種類のメソッドが、Serviceインタフェースの拡張機能として、生成されたクライアント・スタブに追加されます。クライアント・アプリケーションは、これらのメソッドを使用すると、Webサービス自体でデプロイされたWS-Policyファイルを適用するかわりに、ローカルWS-Policyファイルをロードして適用できます。着信SOAPメッセージ、発信SOAPメッセージ、発着信双方のSOAPメッセージのいずれにローカルWS-Policyファイルを適用するか、InputStreamとURIのどちらからローカルWS-Policyファイルをロードするかをクライアント・アプリケーションで指定できます。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はFalseで、追加メソッドは生成されないことを示します。

詳細は、『Oracle WebLogic Server WebLogic Webサービスの保護』のクライアント側セキュリティWS-Policyファイルの使用に関する項を参照してください。

ブール

いいえ

JAX-RPC

getRuntimeCatalog

clientgen Antタスクがクライアントの実行時環境にXMLカタログ・アーティファクトを生成するかどうかを指定します。生成を無効にするには、このフラグをfalseに設定します。この値のデフォルトはtrueです。詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のクライアント・ランタイムでのXMLカタログの無効化に関する項を参照してください。

ブール

いいえ

JAX-WS

handlerChainFile

クライアント・アプリケーションがWebサービスを呼び出すときに実行されるクライアント側SOAPメッセージ・ハンドラを記述するXMLファイルの名前を指定します。

ファイルで指定された各ハンドラは、以下のタイミングで2回実行されます。

- クライアント・アプリケーションがWebサービスにSOAPリクエストを送信する直前

- クライアント・アプリケーションがWebサービスからSOAPレスポンスを受信した直後

このclientgen属性を指定しなかった場合、クライアント側のハンドラはCLASSPATHにあっても実行されません。

クライアント側SOAPメッセージ・ハンドラの作成の詳細および例は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』のクライアント側のSOAPメッセージ・ハンドラの作成と使用に関する項を参照してください。

String

いいえ

JAX-RPC

includeGlobalTypes

clientgen Antタスクで、Webサービス操作で明示的に使用されているデータ型だけでなく、WSDL内のすべてのXMLスキーマ・データ型のJava表現を生成するかどうかを指定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はFalseで、clientgenが、積極的に使用されているXMLデータ型のみのJava表現を生成することを意味します。

ブール

いいえ

JAX-RPC

jaxRPCWrappedArrayStyle

clientgen Antタスクが、WSDLファイルのXMLスキーマのデータ型と同じJavaを生成しているときに、maxOccurs属性がunboundedに指定された単一の要素を持つ単一の親シーケンスを格納したXML複合型の存在が確認された場合、タスクは、親複合型または要素で最も下位の名前のJava構造体をデフォルトで生成します。かわりにリテラル配列を生成するようにタスクの動作を変更するには、jaxRPCWrappedArrayStyleをFalseに設定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueです。

ブール

いいえ

JAX-RPC

packageName

生成されたクライアント・インタフェースとスタブ・ファイルをパッケージ化するパッケージ名。

この属性を指定しない場合、clientgen Antタスクは、WSDLファイルのtargetNamespaceに基づくパッケージ名を持つJavaファイルを生成します。たとえば、targetNamespaceがhttp://example.orgの場合、パッケージにはorg.exampleまたはそれに近い名前などが付けられます。パッケージ名を任意に指定する場合は、この属性を指定する必要があります。

この属性を指定しなかった場合、パッケージ名にはすべて小文字を使用することを推奨します。

String

いいえ

両方

serviceName

対応するクライアント・コンポーネント・ファイルが生成されるWSDLファイル内のWebサービスの名前。

Webサービス名はWSDLファイル内の<service>要素に一致します。

この名前は、生成されたマッピング・ファイル、およびWSDLファイルのクライアント側のコピーで使用されます。たとえば、serviceNameをCuteServiceに設定した場合、マッピング・ファイルはcuteService_java_wsdl_mapping.xml、WSDLのクライアント側のコピーはCuteService_saved_wsdl.wsdlとなります。

String

この属性は、WSDLファイルに複数の<service>要素が格納されている場合にのみ必須です。

この属性を指定しておらず、1つまたは複数の<service>要素がWSDLファイルに格納されている場合、Antタスクはエラーを返します。

JAX-RPC

sortSchemaTypes

XSDファイルでは、名前付きのグローバル型と名前なしのローカル型の2つの複合型が定義されています。デフォルトでは、clientgenは名前なしのローカル型に対して独自の名前を自動的に生成しますが、様々なWSDLファイルをコンパイルする際に生成される名前は常に同一ではありません。

有効にすると、clientgenによって生成されるJavaファイル内の型名が同一になります。

ブール

いいえ

JAX-RPC

type

クライアント・アーティファクトの生成対象であるWebサービスのタイプ(JAX-WSまたはJAX-RPC)を指定します。

有効な値は以下のとおりです。

- JAXWS

- JAXRPC

デフォルト値はJAXRPCです。

String

いいえ

両方

wsdl

クライアント・コンポーネント・ファイルの生成が必要な(WebLogicまたは非WebLogic)Webサービスを記述するWSDLのフルパス名またはURL。

クライアントJARファイル内の生成されたスタブ・ファクトリ・クラスは、デフォルト・コンストラクタ内のこの属性の値を使用します。

String

はい

両方

wsdlLocation

@WebServiceまたは@WebServiceProviderで生成されるwsdlLocation属性の値を制御します。

String

いいえ

JAX-WS

clientgenに適用される標準のAnt属性および要素

WebLogic定義のclientgen属性の他に、次に示す標準javac属性も定義できます。各属性の詳細は、http://ant.apache.org/manual/にあるAntのドキュメントを参照してください。

- bootclasspath

- bootClasspathRef

- classpath

- classpathRef

- compiler

- debug

- debugLevel

- depend

- deprecation

- destdir

- encoding

- extdirs

- failonerror

- fork

- includeantruntime

- includejavaruntime

- listfiles

- memoryInitialSize

- memoryMaximumSize

- nowarn

- optimize

- proceed

- source

- sourcepath

- sourcepathRef

- tempdir

- verbose

標準のAnt <sysproperty>子要素を使用して、クライアント側アーティファクトの生成元Webサービスで必要となるプロパティを指定できます。たとえば、Webサービスが保護される場合、javax.xml.rpc.security.auth.username|passwordプロパティを使用して、認証されたユーザー名およびパスワードを設定できます。<sysproperty>の詳細は、java Antタスクに関するAntのドキュメント(http://ant.apache.org/manual/)を参照してください。

clientgen Antタスクでは、次の標準Ant子要素も使用できます。

- <FileSet>

- <SourcePath>

- <Classpath>

- <Extdirs>

jwsc

jwsc Antタスクは、標準JWSアノテーションとWebLogic固有のJWSアノテーションの両方を格納する1つ以上のJava Webサービス(JWS)ファイルを入力として取り、WebLogic Webサービスの作成に必要なアーティファクトをすべて生成します。

JAX-WS Webサービスに対して生成されるアーティファクトには次のものがあります。

- サービス・エンドポイント・インタフェース(JWS_ClassNamePortType.java、JWS_ClassNameはJWSクラスを示す)などのJSR-109 Web Serviceクラス・ファイル(http://www.jcp.org/en/jsr/detail?id=109)。

- JAXBデータ・バインディング・アーティファクト・クラス・ファイル。

- 必要な全デプロイメント記述子。以下を含みます。

- サーブレット・ベースのWebサービス・デプロイメント記述子ファイル(web.xml)。

- Earデプロイメント記述子ファイルapplication.xmlおよびweblogic-application.xmlです。

注意:
JAX-WS Webサービスの場合、次の点に注意してください。

- WSDLファイルは、サービス・エンドポイントのデプロイ時に生成されます。

- EJB 3.0ベースのWebサービスに必要なEJBデプロイメント記述子はありません。

JAX-RPC Webサービスに対して生成されるアーティファクトには次のものがあります。

- サービス・エンドポイント・インタフェース(JWS_ClassNamePortType.java、JWS_ClassNameはJWSクラスを示す)などのJSR-109 Web Serviceクラス・ファイル(http://www.jcp.org/en/jsr/detail?id=175)。

- 必要な全デプロイメント記述子。以下を含めることができます。

- 標準およびWebLogic固有のWebサービスのデプロイメント記述子(webservices.xml、weblogic-webservices.xmlおよびweblogic-webservices-policy.xml)。

- JAX-RPCマッピング・ファイル。

- Javaクラス実装のWebサービス(web.xmlおよびweblogic.xml)。

- EJB実装のWebサービス(ejb-jar.xmlおよびweblogic-ejb-jar.xml)。

- Earデプロイメント記述子ファイルapplication.xmlおよびweblogic-application.xmlです。

- Webサービス操作のパラメータまたは戻り値として使用されるJavaユーザー定義データ型のXMLスキーマ表現。

- Webサービスの内容を外部に公開する形で記述したWSDLファイル。

すべてのアーティファクトを生成すると、jwsc Antタスクは、JavaファイルおよびJWSファイルをコンパイルします。次に、コンパイルされたクラスおよび生成されたアーティファクトを、デプロイ可能なWebアプリケーションWARファイルにパッケージ化し、最後に、そのJARファイルを格納する、展開されたエンタープライズ・アプリケーション・ディレクトリを作成します。このエンタープライズ・アプリケーションをWebLogic Serverにデプロイします。

デフォルトでは、jwsc AntタスクはJAX-RPC仕様に準拠したWebサービスを生成します。ただし、<jws>子要素のtype属性を使用して、生成されるWebサービスのタイプを指定することもできます。たとえば、JAX-WS Webサービスを生成するには、<jws>子要素のtype="JAXWS"属性を設定します。

注意:
標準的ではありませんが、JWSファイルをコーディングして、javax.ejb.SessionBeanを明示的に実装できます。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のステートレス・セッションEJBを実装すべき場合に関する項を参照してください。ただし、これは標準的ではないので、この項では、jwscはWebアプリケーションWARファイルにWebサービスをパッケージ化し、EJB固有の情報は必要な場合にのみ生成されるものとします。

jwsの説明に従って、jwsc Antタスクが<jws>要素を使用してコンパイルするJWSファイルまたはファイルを指定します。<jws>要素がjwsc Antタスクの直接の子である場合、jwscはJWSファイルごとに個別のWARファイルを生成します。すべてのJWSファイルを、サポート・アーティファクトとともに、単一の WARファイル内にパッケージ化する場合、すべての<jws>要素を単一の<module>要素の下でグループ化します。WARファイルを1つにすることによって、WebLogicサーバーのリソースが減り、Webサービスは、ユーザー定義のデータ型などの共通オブジェクトを共有できます。この方法を使用すると、Webサービスに対して同じコンテキスト・パスを指定することもできます。個別のWARファイルにパッケージ化した場合、各サービスも一意のコンテキスト・パスを持つ必要があります。

<module>要素を使用する場合、<jws>を使って各JWSファイルを個別にリストするよりは、<jwsfileset>子要素を使うと、1つまたは複数のディレクトリ内のJWSファイルのリストを検索できます。

以下の項では、jwscに関するその他の重要な情報について説明します。

- Webサービスの呼出しに使用されるトランスポートの指定

- WebLogic Webサービスのコンテキスト・パスの定義

- 呼び出されるWebサービスのクライアント・アーティファクトの生成

- 既存のエンタープライズ・アプリケーションまたはWebアプリケーションの更新

- Taskdefのクラス名

- 例

- jwsc Antタスクの属性と子要素

Webサービスの呼出しに使用されるトランスポートの指定

<jws>要素には、Webサービスの呼出しに使用するトランスポート(HTTP/SまたはJMS)を指定するための、次に示すオプションの子要素があります。

- WLHttpTransport: 生成されたWSDLのポート名に加え、HTTP/SトランスポートでWebサービスを呼び出すために使用するコンテキスト・パスおよびURLのサービスURIセクションを指定します。

- WLJMSTransport: JMSトランスポートでWebサービスを呼び出すために使用するコンテキスト・パスおよびURLのサービスURIセクションと、生成されたWSDLのポート名を指定します。また、JMSトランスポート用に構成済のJMSキュー名および接続ファクトリ名も指定します。

次のガイドラインで、jwsc Antタスクのトランスポート要素の使用方法について説明します。

- jwscに対して指定したトランスポートは、JWSファイル内のすべての対応するトランスポート・アノテーションを常にオーバーライドします。また、トランスポート要素の対応する属性を明示的に指定していない場合でも、トランスポート・アノテーションのすべての属性は無視されます。この場合、トランスポート要素属性のデフォルト値が使用されます。

- 特定のJWSファイルに対して両方のトランスポート要素を指定できます。ただし、指定できるのは、特定のトランスポート要素の1つのインスタンスのみです。たとえば、特定のJWSファイルに2つの異なる<WLHttpTransport>要素を指定することはできませんが、<WLHttpTransport>要素と<WLJmsTransport>要素をそれぞれ1つずつ指定することはできます。

- serviceURI属性の値は、<WLJMSTransport>と<WLHttpTransport>の両方を指定する際、同じにすることができます。

- 特定のJWSファイルに関連付けられるすべてのトランスポートでは、同じ contextPath属性値を指定する必要があります。

- 特定のJWSファイルに複数のトランスポート要素を指定する場合、各要素のportName属性の値は、すべての要素において一意である必要があります。つまり、複数のトランスポート子要素を<jws>に追加する場合、この属性を明示的に指定する必要があることを意味します。これは、要素のデフォルト値は常に同じになるため、jwsc Antタスクの実行時にエラーが発生するためです。

- jwsc Antタスクに対するトランスポート要素のいずれかまたはJWSファイルのトランスポート・アノテーションとしてトランスポートを指定しなかった場合、WebサービスのデフォルトURLは、WLHttpTransport要素のデフォルト値と一致します。

JAX-RPC Webサービスの場合、JWSファイルをプログラミングする際、クライアントがWebサービスを呼び出すのに使用するトランスポートを指定するために、特に@weblogic.jws.WLHttpTransportまたは@weblogic.jws.WLJMSTransportという形式のアノテーションを使用できます。JWSファイルでは、特定のトランスポート・アノテーションの1つのインスタンスのみを指定できます。たとえば、2つの異なる@WLHttpTransportアノテーションを指定することはできませんが、@WLHttpTransportアノテーションと@WLJmsTransportアノテーションをそれぞれ1つずつ指定することはできます。ただし、JWSファイルを記述している時点では、どのトランスポートがニーズに適しているかを判断できない可能性があります。そのため、トランスポートはビルド時に指定するのが一般的に最適な方法です。

WebLogic Webサービスのコンテキスト・パスの定義

WebLogic Webサービスのコンテキスト・パス(コンテキスト・ルートとも呼ばれます)は、様々な場所で指定できます。この項では、サービスのコンテキスト・パスが複数の場所で設定されている場合でも、構成に基づいてサービスの正しいコンテキスト・パスを判別する方法について説明します。

この説明では、Webサービスのコンテキスト・パスとは、WebサービスURLのhost:port部分の後にくる文字列を指します。たとえば、WebLogic WebサービスのデプロイされたWSDLが次のとおりであるとします。

http://hostname:7001/financial/GetQuote?WSDL

financialが、このWebサービスのコンテキスト・パスです。

次に、コンテキスト・パスを指定できるすべての場所の優先順位を、重要度の高い順番で示します。

1. <module>要素および<jws>要素のcontextPath属性(jwsc Antタスクの直接の子として使用される場合)

2. <jws>の<WLXXXTransport>子要素のcontextPath属性。

3. @WLXXXTransport JWSアノテーションのcontextPath属性(JAX-RPC Webサービスのみ)。

注意:
このオプションはJAX-RPC Webサービスにのみ適用されます。

4. コンテキスト・パスのデフォルト値(JWSファイルの名前。ただし、拡張子は付きません)

たとえば、JAX-RPC JWSファイルで@WLHttpTransportアノテーションを指定し、そのcontextPath属性をfinancialに設定したものと仮定します。この時、build.xmlファイルのjwsc Antタスクにおいてその他のcontextPath属性を指定していない場合、Webサービスのコンテキスト・パスはfinancialになります。

ここで、そのbuild.xmlファイルを更新し、<WLHttpTransport>子要素を、JWSファイルを指定する<jws>要素に追加し、そのcontextPath属性をfinanceに設定したものと仮定します。今度は、Webサービスのコンテキスト・パスはfinanceになります。ただし、次に<module>要素の下で<jws>要素とその子<WLHttpTransport>要素をグループ化し、そのcontextPath属性をmoneyに設定すると、Webサービスのコンテキスト・パスはmoneyになります。

JWSファイルまたはjwsc AntタスクにおいてcontextPath属性を1つも指定しない場合、Webサービスのコンテキスト・パスはデフォルト値(*.java拡張子の付かないJWSファイルの名前)になります。

複数の<jws>要素を1つの<module>要素の下でグループ化し、前述の他のオプションを使用してコンテキスト・パスを設定しない場合、<module>のcontextPath属性で、モジュール内のすべてのWebサービスで使用される共通のコンテキスト・パスを指定する必要があります。そうしないと、モジュール内のすべてのWebサービスのデフォルト・コンテキスト・パスが異なってしまいます(実装するJWSファイルの名前が異なることに起因します)が、1つのWARファイル内で異なるコンテキスト・パスを使用することはできません。

呼び出されるWebサービスのクライアント・アーティファクトの生成

コンパイルする1つ以上のJWSファイル自体に、別のWebサービスの呼出しが含まれる場合、jwscの<clientgen>要素を使用すると、呼び出す特定のWebサービスのStubおよびServiceインタフェース実装など、必要なクライアント・コンポーネント・ファイルを生成およびコンパイルできます。これらのファイルは、Webサービスの呼出しで利用できるように、生成されるWARファイル内にパッケージ化されます。

既存のエンタープライズ・アプリケーションまたはWebアプリケーションの更新

通常、jwscは、destDir属性で指定された場所にエンタープライズ・アプリケーションの展開されたディレクトリを新規に作成します。ただし、既存のエンタープライズ・アプリケーションを宛先のディレクトリとして指定した場合、jwscは、既存のapplication.xmlファイルを新しいWebサービス情報で書き換えて更新します。

同様に、jwscは通常、生成されるWebアプリケーションを記述する新しいWebアプリケーションのデプロイメント記述子(web.xmlおよびweblogic.xml)を生成します。ただし、Webサービスの追加対象となる既存のWebアプリケーションがある場合、<module>要素の<descriptor>子要素を使用すると、既存のweb.xmlおよびweblogic.xmlファイルを指定できます。この場合、jwscは、これらのファイルをdestDirディレクトリにコピーし、それらに新しい情報を追加します。その他の既存のWebアプリケーション・ファイルをdestDirディレクトリにコピーするには、標準のAnt <fileset>要素を使用します。

注意:
<descriptor>要素で指定される既存のweb.xmlおよびweblogic.xmlファイルは、検証エラーでjwsc Antタスクが失敗するDTDベースではなく、XMLスキーマ・ベースである必要があります。

Taskdefのクラス名

<taskdef name="jwsc"
classname="weblogic.wsee.tools.anttasks.JwscTask" />

例

次の例では、Webサービスを繰り返し開発するbuild.xml Antファイルのbuild-serviceターゲットに指定することでjwsc Antタスクを使用する方法を示します。その他、WebLogic Webサービスを繰り返し開発する際に役立つclean、deploy、client、runなどの様々なターゲットを含むbuild.xmlファイルの完全な例については、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』または『Oracle WebLogic Server JAX-RPC Webサービス・スタート・ガイド』を参照してください。

以下のサンプルでは、非常に単純なjwscの使い方を示します。

<target name="build-service">
<jwsc
srcdir="src"
destdir="output/TestEar">
<jws file="examples/webservices/jwsc/TestServiceImpl.java" />
</jwsc>
</target>

上の例では、TestServiceImpl.javaというJWSファイルがbuild.xmlファイルを格納したディレクトリのsrc/examples/webservices/jwscサブディレクトリにあります。jwsc Antタスクは、Webサービスのアーティファクトをoutput/TestEarサブディレクトリに生成します。jwsc Antタスクでは、WebサービスJARファイルに加え、エンタープライズ・アプリケーションを記述したapplication.xmlファイルもoutput/TestEar/META-INFディレクトリに生成されます。

以下のサンプルでは、上記の例よりも複雑なjwscの使い方を示します。

<path id="add.class.path">
<pathelement path="${myclasses-dir}"/>
<pathelement path="${java.class.path}"/>
</path>
...
<target name="build-service2">
<jwsc
srcdir="src"
destdir="output/TestEar"
verbose="on"
debug="on"
keepGenerated="yes"
classpathref="add.class.path" >
<jws file="examples/webservices/jwsc/TestServiceImpl.java" />
<jws file="examples/webservices/jwsc/AnotherTestServiceImpl.java" />
<jws file="examples/webservices/jwsc/SecondTestServiceImpl.java" />
</jwsc>
</target>

上の例では、デバッグと冗長出力を有効にしており、jwscが出力ディレクトリに既存の一時ファイルを生成しないように指定しています。また、classpathref属性による標準CLASSPATHへの追加方法が示されています。ここでは、build.xmlファイルの別の場所で標準のAnt <path>ターゲットに指定されているadd.class.pathというパスを参照することで、CLASSPATHに追加しています。

さらに、複数のJWSファイルが指定されており、個別のWebアプリケーションWARファイルに分割してパッケージ化されたWebサービスが、同じエンタープライズ・アプリケーションの一部としてデプロイされます。3つのWebサービスをすべて、単一のWARファイル内にパッケージ化する場合、<jws>要素を単一の<module>要素の下でグループ化します(次の例を参照)。

<target name="build-service3">
<jwsc
srcdir="src"
destdir="output/TestEar" >
<module contextPath="test" name="myJar" >
<jws file="examples/webservices/jwsc/TestServiceImpl.java" />
<jws file="examples/webservices/jwsc/AnotherTestServiceImpl.java" />
<jws file="examples/webservices/jwsc/SecondTestServiceImpl.java" />
</module>
</jwsc>
</target>

上の例では、3つのWebサービスすべてをmyJAR.warというWARファイルにパッケージ化しています。このファイルは、エンタープライズ・アプリケーションの展開されたディレクトリの最上位にあります。<module>のcontextPath属性では、3つのWebサービスのコンテキスト・パスがtestであることを指定しています。この値は、JWSファイルのトランスポート・アノテーションで指定されているコンテキスト・パスをオーバーライドします。

次の例では、すべてのトランスポート(HTTP、HTTPS、JMS)を使用してWebサービスを呼び出す方法を示します。

<target name="build-service4">
<jwsc
srcdir="src"
destdir="output/TestEar">
<jws file="examples/webservices/jwsc/TestServiceImpl.java">
<WLHttpTransport
contextPath="TestService" serviceUri="TestService"
portName="TestServicePortHTTP"/>
<WLJmsTransport
contextPath="TestService" serviceUri="JMSTestService"
portName="TestServicePortJMS"
queue="JMSTransportQueue"/>
<clientgen
wsdl="http://examples.org/complex/ComplexService?WSDL"
serviceName="ComplexService"
packageName="examples.webservices.simple_client"/>
</jws>
</jwsc>
</target>

上の例では、<clientgen>要素を使用し、http://examples.org/complex/ComplexService?WSDLによって記述されるWebサービスのクライアント側アーティファクト(StubおよびService実装など)を生成および格納する方法も示しています。これは、Webサービスの実装に加え、TestServiceImpl.java JWSファイルもComplexService Webサービスに対してクライアントとして機能し、ComplexServiceの操作を呼び出すJavaコードを持つ必要があることを示しています。

次の例は、上の例とよく似ていますが、<jws>要素を1つの<module>要素の下でグループ化する点が異なります。

<target name="build-service5">
<jwsc
srcdir="src"
destdir="output/TestEar">
<module contextPath="TestService" >
<jws file="examples/webservices/jwsc/TestServiceImpl.java">
<WLHttpTransport
serviceUri="TestService"
portName="TestServicePort1"/>
</jws>
<jws file="examples/webservices/jwsc/AnotherTestServiceImpl.java" />
<jws file="examples/webservices/jwsc/SecondTestServiceImpl.java" />
<clientgen
wsdl="http://examples.org/complex/ComplexService?WSDL"
serviceName="ComplexService"
packageName="examples.webservices.simple_client" />
</module>
</jwsc>
</target>

上の例では、個々のトランスポート要素で各自のcontextPath属性を定義するのではなく、その親の<module>要素でかわりに定義しています。これによって、jwscによる実際の処理が分かりやすくなり、メンテナンス性も向上します。また、<clientgen>要素は<module>の子であって、前の例のように<jws>の子ではない点に注意してください。

次の例では、<jwsfileset>要素の使用方法を示します。

<target name="build-service6">
<jwsc
srcdir="src"
destdir="output/TestEar" >
<module contextPath="test" name="myJar" >
<jwsfileset srcdir="src/examples/webservices/jwsc" >
<include name="**/*.java" />
</jwsfileset>
</module>
</jwsc>
</target>

この例では、jwscが、build.xmlを格納するディレクトリを基準とする相対パスsrc/examples/webservices/jwsc内の*.javaファイルを検索し、JWSアノテーションを格納するJavaファイルを確定してから、各ファイルをあたかも<module>の<jws>子要素で指定されていたかのように処理します。<include>要素はhttp://ant.apache.org/manual/にある標準のAnt要素であり、標準の<FilesSet>タスクのドキュメントで説明されています。

次の例では、jwsc Antタスクで新しいWebアプリケーション・デプロイメント記述子を作成せずに、既存の記述子に追加するように指定する方法を示します。

<target name="build-service7">
<jwsc
srcdir="src"
destdir="output/TestEar" >
<module contextPath="test" name="myJar" explode="true" >
<jws file="examples/webservices/jwsc/AnotherTestServiceImpl.java" />
<FileSet dir="webapp" >
<include name="**/*.java" />
</FileSet>
<descriptor file="webapp/WEB-INF/web.xml" />
<descriptor file="webapp/WEB-INF/weblogic.xml" />
</module>
</jwsc>
</target>

上の例では、<module>のexplode="true"属性において、生成されるWebアプリケーションが、デフォルトのWARアーカイブ・ファイルではなく、展開されたディレクトリ形式で格納されることを指定しています。<descriptor>子要素では、jwscが、build.xmlファイルを格納するディレクトリのwebapp/WEB-INFサブディレクトリにある既存のweb.xmlおよびweblogic.xmlファイルを新しいWebアプリケーションの展開されたディレクトリにコピーし、指定したJWSファイルの新しいWebサービス情報がこれらのファイルに追加される(jwscで新しいファイルを作成しない)ことを指定しています。また、http://ant.apache.org/manual/にある標準のAnt <FileSet>タスクを使用して追加のファイルを生成されたWARファイルにコピーする方法も示しています。コピーされるファイルのいずれかがJavaファイルである場合、jwsc Antタスクはそのファイルをコンパイルし、コンパイルしたクラスをWebアノテーションのclassesディレクトリに配置します。

デフォルトでは、上のすべての例でJAX-RPC Webサービスが生成されます。次の簡単な例では、<jws>子要素のtype="JAXWS"属性を指定してJAX-WS Webサービスを生成する方法を示します。

<target name="build-service8">
<jwsc
srcdir="src"
destdir="${ear-dir}">
<jws file="examples/webservices/jaxws/JaxWsImpl.java"
type="JAXWS"
/>
</jwsc>
</target>

<jws>要素または<jwsfileset>要素のtype属性を指定できます。

jwsc Antタスクの属性と子要素

jwsc Antタスクには、様々な属性と、<jws>、<module>、および<binding>という3つの子要素があります。詳細は、それぞれ、「jws」、「module」、および「binding」を参照してください。

<module>要素は、1つまたは複数のJWSファイル(<jws>要素でも指定される)を、単一のモジュール(WARファイル)にグループ化します。<module>を指定しない場合、各JWSファイルは、各自のモジュールまたはWARファイルにパッケージ化されます。

<jws>要素(<jwsc>または<module>の子要素として使用される場合)には、<WLHttpTransport>、<WLHttpsTransport>、および<WLJMSTransport>という3種類の子要素(オプション)があります。詳細は、「WLHttpTransport」、「WLHttpsTransport」、および 「WLJMSTransport」を参照してください。トランスポート要素の使用方法については、「Webサービスの呼出しに使用されるトランスポートの指定」を参照してください。

<clientgen>および<descriptor>要素は、<module>の子ではなくjwscの子として使用される場合の<jws>か、実際の<module>要素自体のいずれかの、モジュールを生成する要素の子としてのみ使用します。

<jwsfileset>要素は、<module>の子としてのみ使用できます。

次の図は、jwsc Antタスクの階層構造を示しています。

図2-1 jwsc Antタスクの要素階層

「図2-1 jwsc Antタスクの要素階層」の説明

次の項では、jwsc Antタスクの属性について説明します。jwsc Antタスクで設定可能な、標準のAnt javacタスクに関連する属性のリストについては、「jwscに適用される標準のAnt属性および子要素」を参照してください。

WebLogic固有のjwsc属性

次の表は、WebLogic固有のjwsc属性をまとめたものです。

表2-4 jwsc Ant Taskの属性

属性

説明

必須?

JAX-RPC/JAX-WS/両方

applicationXml

エンタープライズ・アプリケーションのapplication.xmlデプロイメント記述子の完全修飾名およびフルパスを指定します。既存のファイルを指定した場合、jwsc Antタスクは、Webサービス情報を含めるようにそのファイルを更新します。ただし、jwscは、変更されたapplication.xmlファイルをdestDirに自動的にコピーしません。このファイルをdestDIRに手動でコピーする必要があります。

ファイルが存在しない場合、jwscはファイルを作成します。jwsc Antタスクは、同じディレクトリ内の対応するweblogic-application.xmlファイルも作成または更新します。

この属性を指定しなかった場合、jwscは、destDir/META-INF/application.xml (destDirはjwsc属性)ファイルを作成または更新します。

いいえ

両方

destdir

コンパイルしたJWSファイル、XMLスキーマ、WSDL、生成されたデプロイメント記述子ファイルを含む、JARファイルまたはWARファイルにパッケージ化された全ファイルを格納するディレクトリのフルパス名。

jwsc Antタスクは、指定したディレクトリに、展開されたエンタープライズ・アプリケーションを作成します。または、既存のアプリケーション・ディレクトリを指定した場合は、アプリケーションを更新します。jwscタスクは、Webサービスを実装するJARファイルまたはWARファイルをこのディレクトリに生成する他、META-INFディレクトリのapplication.xmlファイルなどの必要なファイルを生成します。jwsc Antタスクは、既存のapplication.xmlファイルがある場合はそれを更新し、既存のファイルがない場合は新たに作成します。別のapplication.xmlをデフォルトから指定するには、applicationXML属性を使用します。

はい

両方

destEncoding

デプロイメント記述子またはXMLファイルなどの出力ファイルの文字エンコーディングを指定します。文字エンコーディングの例としては、SHIFT-JISやUTF-8などがあります。

この属性のデフォルト値はUTF-8です。

いいえ

両方

dotNetStyle

jwsc Antタスクで.NETスタイルのWebサービスを生成するかどうかを指定します。

具体的にはWebサービスのWSDL内で、戻り値のパラメータに対応する<part>要素のname属性の値が、returnParametersではなく、parametersであることを意味します。これは、document-literal-wrappedのWebサービスに対してのみ適用されます。

この属性の有効な値は、trueおよびfalseです。デフォルト値はtrueで、.NETスタイルのWebサービスが生成されることを示します。

いいえ

JAX-RPC

enableAsyncService

Webサービスが、WebLogic Webサービスの非同期機能(信頼性のあるWebサービス・メッセージング、非同期リクエストおよびレスポンス、バッファリング、会話)を1つ以上使用するかどうかを指定します。

信頼性のあるWebサービス・メッセージングの場合、信頼性のあるWebサービス、およびその操作を確実に呼び出すWebサービスの双方に対して、この属性が有効になっていることを確認する必要があります。その他の機能(会話、非同期リクエストおよびレスポンス、バッファリング)の場合は、クライアントWebサービスに対してのみこの属性を有効にする必要があります。

この属性がtrue(デフォルト値)に設定されている場合、WebLogic Serverは、非同期Webサービス機能を処理する内部モジュールを自動的にデプロイします。したがって、Webサービスでこの機能のいずれも使用しない場合は、WebLogic Serverが不要な内部モジュールをデプロイしてリソースを無駄にしないように、この属性をfalseに設定することを検討してください。

この属性の有効な値は、trueおよびfalseです。デフォルト値はtrueです。

注意:この属性はWebLogic Server 9.2では非推奨です。

いいえ

非推奨の属性のため、適用不可

keepGenerated

Antタスクで生成されたJavaソース・ファイルおよびアーティファクトがすでに存在する場合、それを再生成するかどうかを指定します。

noを指定すると、新しいJavaソース・ファイルとアーティファクトが常に生成され、既存のアーティファクトがすべて上書きされます。

yesを指定すると、既存のアーティファクトのタイムスタンプに基づき、変更のあったアーティファクトだけが再生成されます。

この属性の有効な値は、yesまたはnoです。デフォルト値はnoです。

いいえ

両方

sourcepath

パラメータとして使用されるJavaBeanやユーザー定義の例外など、JWSファイルで参照されるJavaファイルを格納する最上位ディレクトリのフルパス名。Javaファイルは、そのパッケージ名に対応するsourcepathディレクトリのサブディレクトリ内にあります。sourcepathパス名には、絶対パスまたはAnt build.xmlファイルを格納するディレクトリを基準とする相対パスのいずれかを指定できます。

たとえば、sourcepathが/srcで、JWSファイルがwebservices.financialパッケージ内のMyType.javaというJavaBeanを参照している場合、MyType.java Javaファイルは/src/webservices/financialディレクトリに格納されています。

この属性のデフォルト値はsrcdir属性の値です。つまり、デフォルトでは、JWSファイルおよびJWSファイルで参照されるオブジェクトは同じパッケージ内にあります。デフォルトではない場合は、それに応じたsourcepathを指定する必要があります。

いいえ

両方

srcdir

コンパイルするJWSファイル(<jws>子要素のfile属性で指定)を格納している最上位ディレクトリのフルパス。JWSファイルは、そのパッケージ名に対応するsrcdirディレクトリのサブディレクトリ内にあります。srcdirパス名には、絶対パスまたはAnt build.xmlファイルを格納するディレクトリを基準とする相対パスを指定できます。

たとえば、srcdirが/srcで、MyService.javaというJWSファイルがwebservices.financialパッケージ内にある場合、MyService.java JWSファイルは/src/webservices/financialディレクトリに格納されています。

はい

両方

srcEncoding

JWSファイルまたは構成XMLファイルなどの入力ファイルの文字エンコーディングを指定します。文字エンコーディングの例としては、SHIFT-JISやUTF-8などがあります。

この属性のデフォルト値は、JVMに対する文字エンコーディング・セットです。

いいえ

両方

jwscに適用される標準のAnt属性および子要素

WebLogic定義のjwsc属性の他に、次に示す標準javac属性も定義できます。各属性の詳細は、http://ant.apache.org/manual/にあるAntのドキュメントを参照してください。

- bootclasspath

- bootClasspathRef

- classpath

- classpathRef

- compiler

- debug

- debugLevel

- depend

- deprecation

- destdir

- encoding

- extdirs

- failonerror

- fork

- includeantruntime

- includejavaruntime

- listfiles

- memoryInitialSize

- memoryMaximumSize

- nowarn

- optimize

- proceed

- source

- sourcepath

- sourcepathRef

- tempdir

- verbose

jwsc Antタスクでは、次の標準Ant子要素も使用できます。

- <SourcePath>

- <Classpath>

- <Extdirs>

jwsc Antタスクの<jws>子要素および<module>子要素と一緒に、以下の標準のAnt要素を使用できます。

- <FileSet>

- <ZipFileSet>

jws

<jws>要素では、特定のWebサービスを実装するJWSファイルの名前を指定しますが、Antタスクは、このWebサービス向けにJavaコードとサポート・アーティファクトを生成し、エンタープライズ・アプリケーション内でデプロイ可能なWARファイルにパッケージ化します。

<jws>要素は、jwsc要素階層の次の2つのレベルで指定できます。

- jwsc Antタスクの直接の子要素。この場合、jwscは各JWSファイルに個別のWARファイルを生成します。一般的に、jwsc Antタスクに対してJWSファイルを1つのみ指定している場合にこの方法を使用します。

- jwscの子である<module>要素の子要素。この場合、jwscは、<module>要素内でグループ化されているすべてのJWSファイルの生成されたコードおよびアーティファクトをすべて含むWARファイルを1つ生成します。この方法は、共通のJavaデータ型など、サポート・ファイルをすべてのJWSファイルで共有する場合に有効です。

jwscの子要素である<module>または<jws>のいずれかを指定する必要があります。

この要素がjwsc要素階層のどの場所にくるのかを視覚的に確認するには、図2-1を参照してください。この要素の使用例については、「例」を参照してください。

jwscの<jws>要素と一緒に、標準のAnt <FileSet>子要素を使用できます。

JAX-WS Webサービス、JAX-RPC Webサービスのいずれを生成する場合でも、<jws>子要素を使用できます。

次の表では、<jws>要素の属性について説明します。この表では、<jws>がjwscの子である場合、<module>の子である場合、またはその両方の場合に属性が適用されるかどうかを説明しています。

表2-5 jwsc Antタスクの<jws>要素の属性

要素の属性" width="100%">

属性

説明

必須?

JAX-RPC/JAX-WS/両方

compiledWsdl

既存のWSDLファイルを基にwsdlc Antタスクで生成されたJARファイルのフルパス名。JARファイルには、このWSDLに基づいてWebサービスを実装するJWSインタフェース・ファイルが含まれます。また、Java表現とXML表現の間でパラメータと戻り値を変換するためのデータ・バインディング・アーティファクトも含まれます。WSDLのXMLスキーマ・セクションは、データのXML表現を定義します。

この属性は、まずwsdlc Antタスクを使用して、生成されたJWSインタフェースを実装するJWSファイルとともにJARファイルを生成する「WSDLファイルから開始する」ケースでのみ使用します。JWS実装クラスをビジネス・ロジックで更新したら、この更新したJWS実装ファイルをfile属性で指定し、jwsc Antタスクを実行してデプロイ可能なWebサービスを生成します。

JWSファイルを最初から記述し、Webサービスを記述したWSDLファイルがWebLogic Webサービス・ランタイムによって生成される「Javaから開始する」ケースでは、compiledWsdl属性を使用しません。

jwscおよび<module>の両方の子として使用された場合に<jws>に適用されます。

「WSDLから開始する」ケースでのみ必須

両方

contextPath

Webサービスのコンテキスト・パス(コンテキスト・ルート)。

たとえば、WebLogic WebサービスのデプロイされたWSDLが次のとおりであるとします。

http://hostname:7001/financial/GetQuote?WSDL

financialが、このWebサービスのコンテキスト・パスです。

この属性の値は、JWSファイルで設定されているその他のコンテキスト・パスをオーバーライドします。これには、<jws>のトランスポート関連の子要素の他に、トランスポート関連のJWSアノテーションも含まれます。

この属性のデフォルト値はJWSファイルの名前(拡張子なし)です。たとえば、JWSファイルがHelloWorldImpl.javaの場合、そのcontextPathのデフォルト値はHelloWorldImplになります。

<jws>がjwscの直接の子である場合にのみ適用されます。

いいえ

両方

explode

デプロイ可能なWebサービスを格納する生成済のWARファイルを、展開ディレクトリ形式にするかどうかを指定します。

この属性の有効な値は、trueまたはfalseです。デフォルト値はfalseで、jwscは実際のWARアーカイブ・ファイルを生成し、展開されたディレクトリ形式にはなりません。

<jws>がjwscの直接の子である場合にのみ適用されます。

いいえ

両方

file

コンパイルするJWSファイルの名前。jwsc Antタスクは、srcdirディレクトリにあるファイルを検索します。

jwscおよび<module>の両方の子として使用された場合に<jws>に適用されます。

はい

両方

generateWsdl

生成されたWARファイルにWEB-INFディレクトリのWSDLファイルを含めるかどうかを指定します。この属性の有効な値は、trueまたはfalseです。デフォルト値はfalseで、この場合jwscは生成されたWARファイルにWSDLファイルを含めません。

jwscおよび<module>の両方の子として使用された場合に<jws>に適用されます。

はい

JAX-WS

includeSchemas

WebサービスのXMLBeansパラメータまたは戻り値が記述されているXMLスキーマ・ファイルのフルパス名。

複数のXMLスキーマ・ファイルを指定するには、カンマまたはセミコロンをデリミタとして使用します。

includeSchemas="po.xsd,customer.xsd"

この属性は、JWSファイルがWebサービス操作のパラメータまたは戻り値として明示的にXMLBeansデータ型を使用している場合にのみサポートされます。XMLBeansデータ型を使用していない場合、この属性を指定すると、jwsc Antタスクはエラーを戻します。

また、この属性は、SOAPバインディングがdocument-literal-bareのWebサービスでのみ使用可能です。WebLogic WebサービスのデフォルトSOAPバインディングはdocument-literal-wrappedなので、対応するJWSファイルには、次のJWSアノテーションを指定する必要があります。

@SOAPBinding(
style=SOAPBinding.Style.DOCUMENT,
use=SOAPBinding.Use.LITERAL,
parameterStyle=SOAPBinding.ParameterStyle.BARE)

XMLBeansの詳細は、http://www.oracle.com/technology/community/welcome-be/index.htmlを参照してください。

jwscおよび<module>の両方の子として使用された場合に<jws>に適用されます。

注意: WebLogic Server 9.1以降では、XMLBeans 1.Xデータ型(つまりcom.bea.xml.XmlObjectの拡張)をWebLogic Webサービスのパラメータまたは戻り値の型として使用することは非推奨となっています。新たに作成するアプリケーションでは、XMLBeans 2.xデータ型を使用する必要があります。

XMLBeansデータ型をパラメータまたは戻り値として使用する場合は必須

JAX-RPC

name

生成されたWARファイル(explode属性がtrueに設定されている場合は展開ディレクトリ)で、デプロイ可能なWebサービスを格納しているファイルの名前。実際のJARアーカイブ・ファイルが生成されると、ファイル名には.war拡張子が付けられます。

この属性のデフォルト値は、file属性で指定したJWSファイルの名前です。

<jws>がjwscの直接の子である場合にのみ適用されます。

いいえ

両方

type

生成するWebサービスのタイプ(JAX-WSまたはJAX-RPC)を指定します。

有効な値は以下のとおりです。

- JAXWS

- JAXRPC

デフォルト値はJAXRPCです。

いいえ

両方

wsdlOnly

このJWSファイルに対してWSDLファイルのみが生成されるように指定します。

注意: デプロイメント記述子やサービス・エンドポイント・インタフェースなどの他のアーティファクトは生成されませんが、Webサービス操作のパラメータと戻り値のデータ型を記述するXMLスキーマをWSDLに含める必要があるので、データ・バインディング・アーティファクトは生成されます。

WSDLは、destDirディレクトリに生成されます。ファイル名はJWS_ClassNameService.wsdl(JWS_ClassNameはJWSクラス名)です。JWS_ClassNameServiceは、生成されたWSDLファイル内のWebサービスの名前にもなります。

この属性をtrueに設定し、explode属性をfalse (これもデフォルト値)に設定すると、jwscはexplode属性を無視し、常に展開形式で出力を生成します。

この属性の有効な値は、trueまたはfalseです。デフォルト値はfalseで、WSDLファイルだけでなく、すべてのアーティファクトが生成されることを示します。

<jws>がjwscの子である場合にのみ適用されます。

いいえ

両方

module

<module>要素は、生成されたコードおよびアーティファクトが単一のWebアプリケーション(WAR)ファイルにパッケージ化されるように、1つまたは複数の<jws>要素を一緒にグループ化します。<module>要素は、メインのjwsc Antタスクの子です。

同じバックエンド・コンポーネント(Javaクラスまたはステートレス・セッションEJB)を使用して実装されるWebサービスのみ、単一の<module>要素の下でグループ化できます。デフォルトでは、jwscはWebサービスを常にプレーンJavaクラスとして実装します(JWSファイルにステートレス・セッションEJBを実装している場合のみ例外)。これは、<module>の<jws>子要素によって指定されたJWSファイルのいずれかがjavax.ejb.SessionBeanを実装する場合、その兄弟<jws>ファイルでもjavax.ejb.SessionBeanを実装する必要があることを意味します。これが不可能な場合、すべてのJWSファイルを単一の<module>の下でグループ化することはできません。

モジュール内のWebサービスは、同じcontextPathを持つ必要がありますが、serviceURIは一意である必要があります。共通のcontextPathを設定するには、<module>要素に対して属性として指定するか、各Webサービスの@WLXXXTransportアノテーション(JAX-RPCの場合のみ)または<WLXXXTrasnsport>要素がcontextPath属性について同じ値を持つようにします。jwsc Antタスクは、これらの値を確認し、一意でない場合にエラーを戻します。

<module>の<jws>子要素は、1つ以上指定する必要があります。

JAX-WS Webサービス、JAX-RPC Webサービスのいずれを生成する場合でも、<module>子要素を使用できます。

この要素がjwsc要素階層のどの場所にくるのかを視覚的に確認するには、図2-1を参照してください。この要素の使用例については、「例」を参照してください。

次の表では、<module>要素の属性について説明します。

表2-6 jwsc Antタスクの<module>要素の属性

要素の属性" width="100%">

属性

説明

必須?

JAX-RPC/JAX-WS/両方

contextPath

このモジュールに含まれるすべてのWebサービスのコンテキスト・パス(コンテキスト・ルート)。

たとえば、WebLogic WebサービスのデプロイされたWSDLが次のとおりであるとします。

http://hostname:7001/financial/GetQuote?WSDL

financialが、このWebサービスのコンテキスト・パスです。

この属性の値は、このモジュールに含まれるJWSファイルで設定されているその他のコンテキスト・パスをオーバーライドします。これには、<jws>のトランスポート関連の子要素の他に、トランスポート関連のJWSアノテーションも含まれます。

この属性のデフォルト値はJWSファイルの名前(拡張子なし)です。たとえば、JWSファイルがHelloWorldImpl.javaの場合、そのcontextPathのデフォルト値はHelloWorldImplになります。

1つのWAR内の複数のWebサービスのコンテキスト・パスを同じにする場合にのみ必須です。「WebLogic Webサービスのコンテキスト・パスの定義」を参照してください。

両方

explode

デプロイ可能なWebサービスを格納する生成済のWARファイルを、展開ディレクトリ形式にするかどうかを指定します。

この属性の有効な値は、trueまたはfalseです。デフォルト値はfalseで、jwscは実際のWARアーカイブ・ファイルを生成し、展開されたディレクトリ形式にはなりません。

いいえ

両方

generateWsdl

生成されたWARファイルにWSDLファイルを含めるかどうかを指定します。この属性の有効な値は、trueまたはfalseです。デフォルト値はfalseで、jwscは実際のWARアーカイブ・ファイルを生成し、展開されたディレクトリ形式にはなりません。

はい

JAX-WS

name

生成されたWARファイル(explode属性がtrueに設定されている場合は展開ディレクトリ)で、デプロイ可能なWebサービスを格納しているファイルの名前。実際のJARアーカイブ・ファイルが生成されると、ファイル名には.war拡張子が付けられます。

この属性のデフォルト値はjwsです。

いいえ

両方

wsdlOnly

<module>の<jws>子要素によって指定される各JWSファイルに対してWSDLファイルのみが生成されるように指定します。

注意: デプロイメント記述子やサービス・エンドポイント・インタフェースなどの他のアーティファクトは生成されませんが、Webサービス操作のパラメータと戻り値のデータ型を記述するXMLスキーマをWSDLに含める必要があるので、データ・バインディング・アーティファクトは生成されます。

WSDLは、destDirディレクトリに生成されます。ファイル名はJWS_ClassNameService.wsdl(JWS_ClassNameはJWSクラス名)です。JWS_ClassNameServiceは、生成されたWSDLファイル内のWebサービスの名前にもなります。

この属性をtrueに設定し、explode属性をfalse (これもデフォルト値)に設定すると、jwscはexplode属性を無視し、常に展開形式で出力を生成します。

この属性の有効な値は、trueまたはfalseです。デフォルト値はfalseで、WSDLファイルだけでなく、すべてのアーティファクトが生成されることを示します。

いいえ

両方

WLHttpTransport

WLHttpTransport要素では、HTTPトランスポートでWebサービスを呼び出すために使用するコンテキスト・パスおよびURLのサービスURIセクションと、生成されたWSDLのポート名を指定します。

<WLHttpTransport>要素は<jws>要素の子です。

<WLHttpTransport>要素は、特定のJWSファイルに対して1つ指定できます。または、この要素は指定しなくても構いません。

この要素の指定時に従うガイドラインについては、「Webサービスの呼出しに使用されるトランスポートの指定」を参照してください。

JAX-WS Webサービス、JAX-RPC Webサービスのいずれを生成する場合でも、<WlHttpTransport>子要素を使用できます。

この要素がjwsc要素階層のどの場所にくるのかを視覚的に確認するには、図2-1を参照してください。この要素の使用例については、「例」を参照してください。

次の表では、<WLHttpTransport>の属性について説明します。

表2-7 <jws>要素の<WLHttpTransport>子要素の属性

要素の<WLHttpTransport>子要素の属性" width="100%">

属性

説明

必須?

JAX-RPC/JAX-WS/両方

contextPath

Webサービスのコンテキスト・パス(コンテキスト・ルート)。

たとえば、WebLogic WebサービスのデプロイされたWSDLが次のとおりであるとします。

http://hostname:7001/financial/GetQuote?WSDL

financialが、このWebサービスのcontextPathです。

この属性のデフォルト値はJWSファイルの名前(拡張子なし)です。たとえば、JWSファイルがHelloWorldImpl.javaの場合、そのcontextPathのデフォルト値はHelloWorldImplになります。

いいえ

両方

serviceUri

URLのWebサービスURI部分。

たとえば、WebLogic WebサービスのデプロイされたWSDLが次のとおりであるとします。

http://hostname:7001/financial/GetQuote?WSDL

GetQuoteが、このWebサービスのserviceUriです。

JAX-WSの場合、この属性のデフォルト値は@WebServiceアノテーションのserviceName要素です(指定されている場合)。それ以外の場合、拡張子を除いたJWSファイルの名前の後にServiceを付けたものになります。たとえば、@WebServiceアノテーションのserviceName要素が指定されておらず、JWSファイルの名前がHelloWorldImpl.javaである場合、そのserviceUriのデフォルト値はHelloWorldImplServiceになります。

JAX-RPCの場合、この属性のデフォルト値はJWSファイルの名前(拡張子なし)です。たとえば、JWSファイルがHelloWorldImpl.javaの場合、そのserviceUriのデフォルト値はHelloWorldImplになります。

いいえ

両方

portName

生成されたWSDLのポートの名前。この属性は、WSDLの<port>要素のname属性に対応しています。

この属性のデフォルト値は、JWSファイルの@javax.jws.WebServiceアノテーションに基づきます。つまり、デフォルトのportNameは、@WebServiceアノテーションのname属性の値にSoapPortというテキストを付け加えた形になります。たとえば、@WebService.nameがMyServiceに設定されている場合、デフォルトのportNameはMyServiceSoapPortとなります。

いいえ

両方

WLHttpsTransport

注意:
<WLHttpsTransport>要素はWebLogic Server 9.2以降では非推奨です。<WLHttpTransport>要素がHTTPとHTTPSプロトコルを両方ともサポートするようになったため、これを使用してください。クライアント・アプリケーションにHTTPSプロトコルのみを使用してWebサービスにアクセスさせるには、JWSファイルで@weblogic.jws.security.UserDataConstraint JWSアノテーションを指定する必要があります。

WLHttpsTransport要素では、セキュリティで保護されたHTTPSトランスポートでWebサービスを呼び出すために使用するコンテキスト・パスおよびURLのサービスURIセクションと、生成されたWSDLのポート名を指定します。

<WLHttpsTransport>要素は<jws>要素の子です。<WLHttpsTransport>要素は、特定のJWSファイルに対して1つ指定できます(指定しなくても構いません)。<WlHttpsTransport>子要素を使用できるのは、JAX-RPC Webサービスを生成する場合のみです。この要素の指定時に従うガイドラインについては、「Webサービスの呼出しに使用されるトランスポートの指定」を参照してください。

この要素がjwsc要素階層のどの場所にくるのかを視覚的に確認するには、図2-1を参照してください。

次の表では、<WLHttpsTransport>の属性について説明します。

表2-8 <jws>要素の<WLHttpsTransport>子要素の属性

要素の<WLHttpsTransport>子要素の属性" width="100%">

属性

説明

必須?

contextPath

Webサービスのコンテキスト・パス(コンテキスト・ルート)。

たとえば、WebLogic WebサービスのデプロイされたWSDLが次のとおりであるとします。

https://hostname:7001/financial/GetQuote?WSDL

financialが、このWebサービスのcontextPathです。

この属性のデフォルト値はJWSファイルの名前(拡張子なし)です。たとえば、JWSファイルがHelloWorldImpl.javaの場合、そのcontextPathのデフォルト値はHelloWorldImplになります。

いいえ

serviceUri

URLのWebサービスURI部分。

たとえば、WebLogic WebサービスのデプロイされたWSDLが次のとおりであるとします。

https://hostname:7001/financial/GetQuote?WSDL

GetQuoteが、このWebサービスのserviceUriです。

JAX-WSの場合、このURI属性のデフォルト値は@WebServiceアノテーションのserviceName要素です(指定されている場合)。それ以外の場合、拡張子を除いたJWSファイルの名前の後にServiceを付けたものになります。たとえば、@WebServiceアノテーションのserviceName要素が指定されておらず、JWSファイルの名前がHelloWorldImpl.javaである場合、そのserviceUriのデフォルト値はHelloWorldImplServiceになります。

JAX-RPCの場合、この属性のデフォルト値はJWSファイルの名前(拡張子なし)です。たとえば、JWSファイルがHelloWorldImpl.javaの場合、そのserviceUriのデフォルト値はHelloWorldImplになります。

いいえ

portName

生成されたWSDLのポートの名前。この属性は、WSDLの<port>要素のname属性に対応しています。

この属性のデフォルト値は、JWSファイルの@javax.jws.WebServiceアノテーションに基づきます。つまり、デフォルトのportNameは、@WebServiceアノテーションのname属性の値にSoapPortというテキストを付け加えた形になります。たとえば、@WebService.nameがMyServiceに設定されている場合、デフォルトのportNameはMyServiceSoapPortとなります。

いいえ

WLJMSTransport

注意:
JAX-RPC Webサービスを生成する場合のみ、<WLJmsTransport>子要素を使用できます。

WLJMSTransport要素では、JMSトランスポートでWebサービスを呼び出すために使用するコンテキスト・パスおよびURLのサービスURIセクションと、生成されたWSDLのポート名を指定します。また、JMSトランスポート用に構成済のJMSキュー名および接続ファクトリ名も指定します。

<WLHJmsTransport>要素は<jws>要素の子です。<WLJmsTransport>要素は、特定のJWSファイルに対して1つ指定できます。この要素の指定時に従うガイドラインについては、「Webサービスの呼出しに使用されるトランスポートの指定」を参照してください。

この要素がjwsc要素階層のどの場所にくるのかを視覚的に確認するには、図2-1を参照してください。この要素の使用例については、「例」を参照してください。

次の表では、<WLJmsTransport>の属性について説明します。

表2-9 <jws>要素の<WLJMSTransport>子要素の属性

要素の<WLJMSTransport>子要素の属性" width="100%">

属性

説明

必須?

contextPath

Webサービスのコンテキスト・パス(コンテキスト・ルート)。

たとえば、WebLogic WebサービスのデプロイされたWSDLが次のとおりであるとします。

http://hostname:7001/financial/GetQuote?WSDL

financialが、このWebサービスのcontextPathです。

この属性のデフォルト値はJWSファイルの名前(拡張子なし)です。たとえば、JWSファイルがHelloWorldImpl.javaの場合、そのcontextPathのデフォルト値はHelloWorldImplになります。

いいえ

serviceUri

URLのWebサービスURI部分。

たとえば、WebLogic WebサービスのデプロイされたWSDLが次のとおりであるとします。

http://hostname:7001/financial/GetQuote?WSDL

GetQuoteが、このWebサービスのserviceUriです。

JAX-WSの場合、この属性のデフォルト値は@WebServiceアノテーションのserviceName要素です(指定されている場合)。それ以外の場合、拡張子を除いたJWSファイルの名前の後にServiceを付けたものになります。たとえば、@WebServiceアノテーションのserviceName要素が指定されておらず、JWSファイルの名前がHelloWorldImpl.javaである場合、そのserviceUriのデフォルト値はHelloWorldImplServiceになります。

JAX-RPCの場合、この属性のデフォルト値はJWSファイルの名前(拡張子なし)です。たとえば、JWSファイルがHelloWorldImpl.javaの場合、そのserviceUriのデフォルト値はHelloWorldImplになります。

いいえ

portName

生成されたWSDLのポートの名前。この属性は、WSDLの<port>要素のname属性に対応しています。

この属性のデフォルト値は、JWSファイルの@javax.jws.WebServiceアノテーションに基づきます。つまり、デフォルトのportNameは、@WebServiceアノテーションのname属性の値にSoapPortというテキストを付け加えた形になります。たとえば、@WebService.nameがMyServiceに設定されている場合、デフォルトのportNameはMyServiceSoapPortとなります。

いいえ

queue

JMSトランスポート用に構成済のJMSキューのJNDI名。JMSトランスポートの使用の詳細は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』の接続プロトコルとしてのJMSトランスポートの使用に関する項を参照してください。

この属性を指定しない場合のデフォルト値はweblogic.wsee.DefaultQueueです。その場合でも、Webサービスのデプロイ先となるWebLogic Serverインスタンスで、このJMSキューを作成する必要があります。

いいえ

connectionFactory

JMSトランスポート用に構成済みのJMS接続ファクトリのJNDI名。

この属性のデフォルト値は、WebLogic ServerインスタンスのデフォルトのJMS接続ファクトリです。

いいえ

clientgen

JWSファイル自体で別のWebサービスを呼び出し、jwsc Antタスクで、必要なクライアント側アーティファクトを自動的に生成およびコンパイルし、それらをWebサービスと一緒にWebアプリケーションWARファイルにパッケージ化する場合、<clientgen>要素を使用します。クライアント側アーティファクトには、次のものが含まれます。

- 呼出しの対象となる特定のWebサービスに対するStubおよびServiceインタフェース実装のJavaクラス。

- WSDLファイルで指定されたユーザー定義XMLスキーマ・データ型のJavaクラス。

- JAX-RPCの場合、Javaのユーザー定義のデータ型と、WSDLファイル内で指定されたそのデータ型に対応するXMLスキーマ型の間のマッピングに関する情報を格納するJAX-RPCマッピング・デプロイメント記述子ファイル。

この要素がjwsc要素階層のどの場所にくるのかを視覚的に確認するには、図2-1を参照してください。この要素の使用例については、「例」を参照してください。

標準のAnt <sysproperty>子要素を使用して、クライアント側アーティファクトの生成元Webサービスで必要となるプロパティを指定できます。たとえば、Webサービスが保護される場合、javax.xml.rpc.security.auth.username|passwordプロパティを使用して、認証されたユーザー名およびパスワードを設定できます。<sysproperty>の詳細は、java Antタスクに関するAntのドキュメント(http://ant.apache.org/manual/)を参照してください。

JAX-WS Webサービス、JAX-RPC Webサービスのいずれを生成する場合でも、<clientgen>子要素を使用できます。

次の表では、<clientgen>要素の属性について説明します。

表2-10 <clientgen>要素の属性

要素の属性" width="100%">

属性

説明

必須?

JAX-RPC/JAX-WS/両方

autoDetectWrapped

jwsc Antタスクでドキュメント・リテラルWebサービスのパラメータと戻り値の型がwrappedかbareかを判別するかどうかを指定します。

WSDLファイルを解析してクライアント・スタブを作成する場合、jwsc Antタスクは、XMLスキーマ要素の名前や操作とパラメータの名前などに基づいて、ドキュメント・リテラルWebサービスがwrappedパラメータを使用するかbareパラメータを使用するかを判別し、戻り値の型を識別します。これらのコンポーネント名がどのように照合されるかによって、jwsc Antタスクは、パラメータがwrappedかbareかを推定します。ただし、Antタスクでパラメータの型が常にbareと推定されるように指定することもできる。この場合、autoDetectWrapped属性をFalseに設定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueです。

いいえ

JAX-RPC

catalog

外部XMLカタログ・ファイルを指定します。XMLカタログ・ファイルの作成の詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のXMLカタログの使用に関する項を参照してください。

いいえ

JAX-WS

handlerChainFile

JWSファイルがWebサービスを呼び出すときに実行されるクライアント側SOAPメッセージ・ハンドラを記述するXMLファイルの名前を指定します。

ファイルで指定された各ハンドラは、以下のタイミングで2回実行されます。

- JWSが、呼び出されたWebサービスにSOAPリクエストを送信する直前

- JWSが、呼び出されたWebサービスからSOAPレスポンスを受信した直後

この属性を指定しなかった場合、WebサービスがJWSファイルから呼び出されるとき、クライアント側のハンドラはCLASSPATHにあっても実行されません。

クライアント側SOAPメッセージ・ハンドラの作成の詳細および例は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』のクライアント側のSOAPメッセージ・ハンドラの作成と使用に関する項を参照してください。

いいえ

JAX-RPC

generateAsyncMethods

jwsc Antタスクが、JWSファイルがWebサービス操作を非同期的に呼び出すために使用できるメソッドを、生成されたスタブに格納するかどうかを指定します。

たとえば、True(デフォルト値)を指定し、WSDLにgetQuoteというWebサービス操作がある場合、jwsc AntタスクはgetQuoteAsyncというメソッドもスタブに生成するので、JWSファイルは元のgetQuoteメソッドのかわりにこのメソッドを使用できます。この非同期的な種類の操作には、JWSファイルが非同期プロパティやコンテキスト変数などを設定するための追加パラメータ(weblogic.wsee.async.AsyncPreCallContextデータ型)も含まれます。

注意: JWSファイル内で呼び出されるWebサービス操作が一方向としてマークされている場合、generateAsyncMethods属性を明示的にTrueに設定しても、jwsc Antタスクは非同期的な種類のスタブを生成しません。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueで、非同期メソッドが生成されることを示します。

いいえ

JAX-RPC

generatePolicyMethods

jwsc Antタスクが、WS-Policyのロード・メソッドを、生成されたスタブに格納するかどうかを指定します。これらのメソッドをJWSファイル内で使用すると、Webサービスを呼び出す際にローカルWS-Policyファイルをロードできます。

Trueを指定した場合、getXXXSoapPort()(XXXはWebサービス名)という4種類のメソッドが、Serviceインタフェースの拡張機能として、生成されたクライアント・スタブに追加されます。JWSファイルでこれらのメソッドを使用するようにプログラミングすると、Webサービス自体でデプロイされたWS-Policyファイルを適用するかわりに、ローカルWS-Policyファイルをロードして適用できます。着信SOAPメッセージ、発信SOAPメッセージ、発着信双方のSOAPメッセージのいずれにローカルWS-Policyファイルを適用するか、InputStreamとURIのどちらからローカルWS-Policyファイルをロードするかを指定できます。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はFalseで、追加メソッドは生成されないことを示します。

詳細は、『Oracle WebLogic Server WebLogic Webサービスの保護』のクライアント側セキュリティWS-Policyファイルの使用に関する項を参照してください。

いいえ

JAX-RPC

includeGlobalTypes

jwsc Antタスクで、Webサービス操作で明示的に使用されているデータ型だけでなく、WSDL内のすべてのXMLスキーマ・データ型のJava表現を生成するかどうかを指定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はFalseで、jwscが、積極的に使用されているXMLデータ型のみのJava表現を生成することを意味します。

いいえ

JAX-RPC

jaxRPCWrappedArrayStyle

jwsc Antタスクが、WSDLファイルのXMLスキーマのデータ型と同じJavaを生成しているときに、maxOccurs属性がunboundedに指定された単一の要素を持つ単一の親シーケンスを格納したXML複合型の存在が確認された場合、タスクは、親複合型または要素で最も下位の名前のJava構造体をデフォルトで生成します。かわりにリテラル配列を生成するようにタスクの動作を変更するには、jaxRPCWrappedArrayStyleをFalseに設定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueです。

いいえ

JAX-RPC

packageName

生成されたクライアント・インタフェースとスタブ・ファイルをパッケージ化するパッケージ名。

パッケージ名には小文字を使用することが推奨されます。

はい

両方

serviceName

対応するクライアント側アーティファクトが生成されるWSDLファイル内のWebサービスの名前。

Webサービス名はWSDLファイル内の<service>要素に一致します。

この名前は、生成されたJAX-RPCマッピング・ファイル、およびWSDLファイルのクライアント側のコピーで使用されます。たとえば、serviceNameをCuteServiceに設定した場合、JAX-RPCマッピング・ファイルはcuteService_java_wsdl_mapping.xml、WSDLのクライアント側のコピーはCuteService_saved_wsdl.wsdlとなります。

この属性は、WSDLファイルに複数の<service>要素が格納されている場合にのみ必須です。

この属性を指定しておらず、1つまたは複数の<service>要素がWSDLファイルに格納されている場合、Antタスクはエラーを返します。

JAX-RPC

wsdl

クライアント・アーティファクトの生成が必要な(WebLogicまたは非WebLogic)Webサービスを記述するWSDLのフルパス名またはURL。

生成されたスタブ・ファクトリ・クラスは、デフォルト・コンストラクタ内のこの属性の値を使用します。

はい

両方

descriptor

<descriptor>要素は、Webサービスの実装を格納するWARを生成する際に新しいWebアプリケーション・デプロイメント記述子を作成するのではなく、jwscタスクが既存のファイルをコピーし、それらを新しい情報で更新することを指定するために使用します。これは、1つ以上のWebサービスの追加対象となる既存のWebアプリケーションがある場合に有効です。通常、この要素は、標準の<FileSet> Antタスクと一緒に使用し、HTMLファイルおよびJavaクラスなど、その他の既存のWebアプリケーション・アーティファクトをjwsc生成のWebアプリケーションにコピーします。

この要素と一緒に使用できるデプロイメント記述子ファイルは次の2つのみです。

- web.xml

- weblogic.xml

各デプロイメント記述子ファイルには、個別の<descriptor>要素を使用します。

<descriptor>要素は、<module>または<jws>(後者がメインのjwsc Antタスクの直接の子である場合)の子です。

注意:
<descriptor>要素で指定される既存のweb.xmlおよびweblogic.xmlファイルは、検証エラーでjwsc Antタスクが失敗するDTDベースではなく、XMLスキーマ・ベースである必要があります。

JAX-RPC Webサービスを生成する場合のみ、<descriptor>子要素を使用できます。この要素がjwsc要素階層のどの場所にくるのかを視覚的に確認するには、図2-1を参照してください。この要素の使用例については、「例」を参照してください。

次の表では、<descriptor>要素の属性について説明します。

表2-11 <descriptor>要素の属性

要素の属性" width="100%">

属性

説明

必須?

file

既存のデプロイメント記述子ファイルのフルパス名(絶対パスまたはbuild.xmlファイルを格納するディレクトリを基準とする相対パス)。デプロイメント記述子は、DTDベースではなく、XMLスキーマ・ベースである必要があります。

jwsc Antタスクは、このファイルを直接更新しませんが、新規に生成したWebアプリケーションにコピーします。

はい

jwsfileset

<module>の<jwsfileset>子要素として使用し、jwsc Antタスクが、コンパイルするJWSファイルを検索する1つまたは複数のディレクトリを指定します。jwscが検出したJWSファイルのリストは、あたかも、各ファイルが<module>の<jws>子要素で個別に指定されていたかのように処理されます。

検索を絞り込むには、<FileSet> Antタスクの標準のネストされた要素を使用します。たとえば、リストに含めるJWSファイルを判別する際に、<jwsfileset>が従うべきパターン・マッチングを指定するには、<include>要素を使用します。<FileSet>の詳細およびこれらのネストされた要素http://ant.apache.org/manual/にあるAntのドキュメントを参照してください。

JAX-WS Webサービス、JAX-RPC Webサービスのいずれを生成する場合でも、<jwsfileset>子要素を使用できます。

この要素がjwsc要素階層のどの場所にくるのかを視覚的に確認するには、図2-1を参照してください。この要素の使用例については、「例」を参照してください。

次の表では、<jwsfileset>要素の属性について説明します。

表2-12 <jwsfileset>要素の属性

要素の属性" width="100%">

属性

説明

必須?

JAX-RPC/JAX-WS/両方

srcdir

jwsc Antタスクが、コンパイルするJWSファイルを検索するディレクトリ(セミコロン区切り)を指定します。

はい

両方

type

見つかった各JWSファイルに対して生成するWebサービスのタイプ(JAX-WSまたはJAX-RPC)を指定します。

有効な値は以下のとおりです。

- JAXWS

- JAXRPC

デフォルト値はJAXRPCです。

いいえ

両方

binding

<binding>子要素は、次のいずれかを指定するために使用します。

- JAX-WSおよびJAXBカスタム・バインディング宣言を指定する1つ以上のカスタマイズ・ファイル(JAX-WSの場合)。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のバインディング宣言を使用したXML Schema-to-Javaマッピングのカスタマイズに関する項を参照してください。

- JAX-RPCの場合、1つ以上のXMLBeans構成ファイル(慣例により、.xsdconfigで終わります)。Webサービスで、パラメータまたは戻り値としてApache XMLBeans(http://xmlbeans.apache.org/)データ型を使用している場合、この要素を使用します。

<binding>要素は、標準のAnt <Fileset>要素に似ており、同じ属性をすべて持ちます。指定可能な属性の完全なリストの詳細は、http://ant.apache.org/manual/Types/fileset.htmlにある、Fileset要素に関するApache Antのドキュメントを参照してください。

注意:
<binding>子要素は、<jws>要素のcompliedWsdl属性を指定した場合は無効になります。
<binding>要素は、WebLogic Server 10.0から非推奨になった<xsdConfig>要素にかわるものです。

wsdlc

wsdlc Antタスクは、既存のWSDLファイルを基に、WSDLファイルで記述されたWebサービスの部分的なJava実装を提供する一連のアーティファクトを生成します。type属性を指定することで、JAX-WSまたはJAX-RPCのいずれかに基づいた部分的な実装を生成できます。

デフォルトでは、wsdlc Antタスクがアーティファクトを生成する元となる<service>要素が1つのみWSDLファイルに含まれるものとされます。ただし、srcServiceName属性を使用して、複数の<service>要素がWSDLファイル内に存在する場合に特定のWebサービスを指定するか、srcPortName属性を使用して、複数の<port>子要素が特定のWebサービスに対して存在する場合にWebサービスの特定のポートを指定することができます。

wsdlc Antタスクによって、次のアーティファクトが生成されます。

- WSDLファイルで記述されたWebサービスを実装するJWSインタフェース・ファイル(サービス・エンドポイント・インタフェース)。インタフェースには、Webサービス操作を実装する詳細なメソッド・シグネチャ、およびWebサービスのその他の側面を実装するJWSアノテーション(@WebServiceや@SOAPBindingなど)が含まれます。このファイルは変更しないでください。

- Webサービスのパラメータと戻り値をXML表現とJava表現の間で変換するために、WebLogic Serverによって使用されるデータ・バインディング・アーティファクト。データ型のXMLスキーマはWSDLで指定され、Java表現はwsdlc Antタスクで生成されます。このファイルは変更しないでください。

- 生成されたJWSインタフェースの不完全な(途中まで作成済みの)実装を格納したJWSファイル。このファイルを修正してビジネス・コードを追加する必要があります。

- (オプション)生成されるJWSインタフェースのJavadoc。

wsdlc Antタスクを実行(通常は1回のみ)したら、メソッドをビジネス要件どおりに実行するためにそのメソッドにJavaコードを追加するなどして、生成されたJWS実装ファイルを更新します。wsdlc Antタスクは、WSDLファイルを基にWebサービスの形式を認識していますが、そのWebサービスをどのように実行するかについては認識していないので、最初は生成されたJWS実装ファイルにビジネス・ロジックは含まれていません。

JWS実装ファイルを記述するときに、JWSアノテーションを追加することもできます。ただし、以下の規則に従う必要があります。

- JWS実装ファイルに含めることができる標準JSR-181 JWSアノテーションは、@WebService、@HandlerChain、@SOAPMessageHandler、および@SOAPMessageHandlersのみです。他のJWS-181 JWSアノテーションを指定した場合、JWSファイルをWebサービスにコンパイルしようとすると、jwsc Antタスクはエラーを戻します。

- weblogic.jws.Policyアノテーションまたはweblogic.jws.Policiesアノテーションを使用して、JWS実装ファイル内のWebサービスにポリシーをアタッチできません。
WSDLでポリシーがまだ定義されていない場合は、管理コンソールを使用してデプロイされたWebサービスにポリシーをアタッチできます。

- また、@WebServiceアノテーションで指定できるのは、serviceName属性とendpointInterface属性のみ。まれに、WSDLファイルに複数の<service>要素が指定されていることがあります。その場合は、serviceName属性を使用して、wsdlc Antタスクで使用していたものとは別の<service> WSDL要素を指定します。wsdlc Antタスクで生成されたJWSインタフェースを指定するには、endpointInterface属性を使用します。

- JAX-RPC Webサービスに対しては、必要に応じてWebLogic固有のJWSアノテーションを指定できます。JAX-WS Webサービスでは、WebLogic固有のJWSアノテーションは使用できません。

- JAX-WSに対して、必要に応じて、JAX-WS (http://jax-ws.java.netの224)、JAXB (http://jcp.org/en/jsr/detail?id=222のJSR 222)またはCommon (http://jcp.org/en/jsr/detail?id=250のJSR 250)アノテーションを指定できます。

JWSファイルにビジネス・ロジックを追加したら、jwsc Antタスクを実行して、Webサービスの完全なJava実装を生成します。jwscのcompiledWsdl属性を使用すると、JWSインタフェース・ファイルとデータ・バインディング・アーティファクトを格納するwsdlc Antタスクで生成されたJARファイルを指定できます。この属性を指定すると、jwsc Antタスクは、新しいWSDLファイルを生成せず、JARファイル内の既存のWSDLファイルを使用します。そのため、Webサービスをデプロイして、そのWSDLを表示すると、デプロイされたWSDLは、ユーザーが最初に開始した時点のWSDLとほとんど変わらないように見えます。

注意:
オリジナルのWSDLとデプロイされたWSDLの違いは、おそらくWebサービスのポートの<address>要素のlocation属性の値です。デプロイされたWSDLは、デプロイされたWebサービスの実際のホスト名とURIを指定しますが、これはほぼ間違いなくオリジナルのWSDLの値とは違います。この違いは、静的WSDLを基に実際のWebサービスをデプロイする際に現れると予想されます。

以下のガイドラインで説明するように、生成される複合データ型のJavaパッケージ名は、生成される部分的な実装のタイプ(JAX-WSまたはJAX-RPC)に応じて異なります。

- JAX-WSの場合は、packageName属性を指定すると、すべてのアーティファクト(Java複合データ型、JWSインタフェース、JWSインタフェース実装)がこのパッケージに生成されます。この場合に、生成されるJava複合データ型のパッケージ名を変更するには、wsdlc Antタスクの<binding子要素を使用してカスタム・バインディング宣言ファイルを指定します。カスタム・バインディング宣言ファイルの作成については、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のJAXBデータ・バインディングの使用に関する項を参照してください。

- JAX-RPCの場合は、wsdlc AntタスクのpackageName属性を指定すると、生成されるJWSインタフェースおよび実装のみがこのパッケージに含まれます。ただし、生成されるJava複合データ型のパッケージ名は、packageName属性を指定しているかどうかに関係なく、常にXSDスキーマ型のネームスペースに対応します。

jwscと組み合せたwsdlc Antタスクの完全な使用例については、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のWSDLファイルからのWebサービスの作成に関する項を参照してください。

以下の項では、wsdlcに関するその他の重要な情報について説明します。

- Taskdefのクラス名

- 例

- 子要素

- 属性

Taskdefのクラス名

<taskdef name="wsdlc"
classname="weblogic.wsee.tools.anttasks.WsdlcTask"/>

例

次のAnt build.xmlファイルの一部では、wsdlcとjwscの2つのAntタスクを組み合せてWebLogic Webサービスをビルドする方法を示します。ビルド・ファイルには、既存のWSDLファイルに対してwsdlc Antタスクを実行するgenerate-from-wsdl、およびwsdlc Antタスクで生成されたアーティファクトからデプロイ可能なWebサービスをビルドするためにjwsc Antタスクを実行するbuild-serviceという2種類のターゲットが指定されています。

<taskdef name="wsdlc"
classname="weblogic.wsee.tools.anttasks.WsdlcTask"/>
<taskdef name="jwsc"
classname="weblogic.wsee.tools.anttasks.JwscTask" />
<target name="generate-from-wsdl">
<wsdlc
srcWsdl="wsdl_files/TemperatureService.wsdl"
destJwsDir="output/compiledWsdl"
destImplDir="output/impl"
packageName="examples.webservices.wsdlc"
type="JAXWS" />
</target>
<target name="build-service">
<jwsc
srcdir="src"
destdir="output/wsdlcEar">
<jws file=
"examples/webservices/wsdlc/TemperatureService_TemperaturePortTypeImpl.java"
compiledWsdl="output/compiledWsdl/TemperatureService_wsdl.jar"
type="JAXWS"/>
</jwsc>
</target>

この例では、wsdlc Antタスクは、TemperatureService.wsdlファイルを入力として取り、JWSインタフェースとデータ・バインディング・アーティファクトが格納されたJARファイルをoutput/compiledWsdlディレクトリに生成します。JARファイル名はTemperatureService_wsdl.jarです。このAntタスクでは、途中まで作成済みのJWSインタフェースの実装を格納したJWSファイルをoutput/impl/examples/webservices/wsdlcディレクトリ(destImplDir属性の値と、指定したpackageNameに対応するディレクトリ階層を組み合せたもの)に生成します。

JAX-WSの場合、途中まで作成済みのJWS実装ファイルの名前は、WSDLファイルの<service>要素とその内部の<port>要素の名前に基づきます。たとえば、サービス名がTemperatureServiceで、ポート名がTemperaturePortTypeの場合、生成されたJWS実装ファイルの名前はTemperatureService_TemperaturePortTypeImpl.javaとなります。

JAX-RPCの場合、途中まで作成済みのJWS実装ファイルの名前は、最初の<service>要素に対応する<portType>要素の名前に基づきます。たとえば、portTypeの名前がTemperaturePortTypeの場合、生成されたJWS実装ファイルはTemperaturePortTypeImpl.javaという名前になります。

wsdlcを実行したら、途中まで作成済みのJWS実装ファイルにビジネス・ロジックを追加します。通常、このJWSファイルをwsdlc出力ディレクトリから、アプリケーションのソース・コードを含む、より永続的なディレクトリに移動します。この例では、詳細に記述されたTemperatureService_TemperaturePortTypeImpl.java JWSファイルはsrc/examples/webservices/wsdlc/ディレクトリに移動しています。次に、jwsc Antタスクを実行し、このJWSファイルを通常通りに指定します。ここで指定する必要がある唯一の追加属性がcompiledWsdlです。この属性は、上記の例で示すようにwsdlc Antタスクで生成されたJARファイルを指します。これは、JARファイルにコンパイルされているオリジナルのWSDLファイルを使用するので、jwsc AntタスクでWSDLファイルを生成しないことを示します。

子要素

wsdlc Antタスクには、次のWebLogic固有の子要素があります。

- binding

- xmlcatalog

wsdlc Antタスクで設定可能な、標準のAnt javacタスクに関連する要素のリストについては、「 wsdlcに適用される標準のAnt javac属性」を参照してください。

binding

<binding>子要素は、次のいずれかを指定するために使用します。

- JAX-WSおよびJAXBカスタム・バインディング宣言を指定する1つ以上のカスタマイズ・ファイル(JAX-WSの場合)。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のバインディング宣言を使用したXML Schema-to-Javaマッピングのカスタマイズに関する項を参照してください。

- JAX-RPCの場合、1つ以上のXMLBeans構成ファイル(慣例により、.xsdconfigで終わります)。Webサービスで、パラメータまたは戻り値としてApache XMLBeans(http://xmlbeans.apache.org/)データ型を使用している場合、この要素を使用します。

<binding>要素は、標準のAnt <Fileset>要素に似ており、同じ属性をすべて持ちます。指定可能な属性の完全なリストの詳細は、http://ant.apache.org/manual/Types/fileset.htmlにある、Fileset要素に関するApache Antのドキュメントを参照してください。

注意:
<binding>要素は、WebLogic Server 10.0から非推奨になった<xsdConfig>要素にかわるものです。

xmlcatalog

<xmlcatalog>子要素には、組込みXMLカタログのIDを指定します。要素の構文は次のとおりです。

<xmlcatalog refid="id"/>

<xmlcatalog>によって参照されるIDは、組込みXMLカタログのIDと一致していなければなりません。build.xmlファイルにXMLカタログを組み込むには、次の構文を使用します。

<xmlcatalog id="id">
<entity publicid="public_id" location="uri"/>
</xmlcatalog>

上の構文で、public_idには元のXMLリソース(WSDLまたはXSD)のパブリックIDを指定し、uriには代替XMLリソースを指定します。

以下の例は、XMLカタログを組み込んでwsdlcを使用して参照する方法を示しています。関連するコード行は太字で示しています。

<target name="wsdlc">
<wsdlc
srcWsdl="wsdl_files/TemperatureService.wsdl"
destJwsDir="output/compiledWsdl"
destImplDir="output/impl"
packageName="examples.webservices.wsdlc"
<xmlcatalog refid="wsimportcatalog"/>
</wsdlc>
</target>
<xmlcatalog id="wsimportcatalog">
<entity publicid="http://helloservice.org/types/HelloTypes.xsd"
location="${basedir}/HelloTypes.xsd"/>
</xmlcatalog>

詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のXMLカタログの使用に関する項を参照してください。

属性

次の表では、wsdlc Antタスクの属性について説明します。wsdlc Antタスクで設定可能な、標準のAnt javacタスクに関連する属性のリストについては、「wsdlcに適用される標準のAnt javac属性」を参照してください。

WebLogic固有のwsdlc属性

次の表では、WebLogic固有のwsdlc属性について説明します。

表2-13 wsdlc AntタスクのWebLogic固有の属性

属性

説明

データ型

必須?

JAX-RPC/JAX-WS/両方

autoDetectWrapped

wsdlc Antタスクでドキュメント・リテラルWebサービスのパラメータと戻り値の型がwrappedかbareかを判別するかどうかを指定します。

WSDLファイルを解析して、Webサービスを実装する部分的なJWSファイルを作成する場合、wsdlc Antタスクは、XMLスキーマ要素の名前や操作とパラメータの名前などに基づいて、ドキュメント・リテラルWebサービスがwrappedパラメータを使用するかbareパラメータを使用するかを判別し、戻り値の型を識別します。これらのコンポーネント名がどのように照合されるかによって、wsdlc Antタスクは、パラメータがwrappedかbareかを推定します。ただし、Antタスクでパラメータの型が常にbareと推定されるように指定することもできる。この場合、autoDetectWrapped属性をFalseに設定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueです。

ブール

いいえ

JAX-RPC

catalog

外部XMLカタログ・ファイルを指定します。XMLカタログ・ファイルの作成の詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のXMLカタログの使用に関する項を参照してください。

String

いいえ

両方

destImplDir

途中まで作成済みのJWS実装ファイルの生成先となるディレクトリ。

生成されたJWSファイルは、生成されたJWSインタフェース・ファイル(JARファイル内に格納)を実装します。メソッドを目的どおりに実行するようにそのメソッドにJavaコードを追加して、このJWS実装ファイルを更新し、後でjwsc Antタスクに対してこの更新されたJWSファイルを指定して、デプロイ可能なWebサービスを生成します。

String

いいえ

両方

destJavadocDir

JWSインタフェースを記述するJavadocの生成先となるディレクトリ。

指定したWebサービスを実装するJWSインタフェース・ファイルを格納した、生成されたJARファイルを展開または更新することはできないので、生成されたこのJavadocからインタフェース・ファイルの詳細を入手してください。途中まで作成済のJWS実装ファイルとともにこのドキュメントを使用すると、部分的に生成されているWebサービスにビジネス・ロジックを追加できます。

String

いいえ

両方

destJwsDir

JWSインタフェース・ファイルおよびデータ・バインディング・アーティファクトを格納するJARファイルの生成先となるディレクトリ。

生成されるJARファイルの名前はWSDLFile_wsdl.jarです(WSDLFileはWSDLファイルのルート名)。たとえば、file属性に対して指定したWSDLファイルの名前がMyService.wsdlの場合、生成されたJARファイルはMyService_wsdl.jarとなります。

String

はい

両方

explode

生成されたJWSインタフェース・ファイルおよびデータ・バインディング・アーティファクトを格納する生成済みのJARファイルを、展開ディレクトリ形式にするかどうかを指定します。

この属性の有効な値は、trueまたはfalseです。デフォルト値はfalseで、wsdlcは実際のJARアーカイブ・ファイルを生成し、展開されたディレクトリ形式にはなりません。

ブール

いいえ

両方

jaxRPCWrappedArrayStyle

wsdlc Antタスクが、WSDLファイルのXMLスキーマのデータ型と同じJavaを生成しているときに、maxOccurs属性がunboundedに指定された単一の要素を持つ単一の親シーケンスを格納したXML複合型の存在が確認された場合、タスクは、親複合型または要素で最も下位の名前のJava構造体をデフォルトで生成します。かわりにリテラル配列を生成するようにタスクの動作を変更するには、jaxRPCWrappedArrayStyleをFalseに設定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueです。

ブール

いいえ

JAX-RPC

packageName

生成されたJWSインタフェースおよび実装ファイルの生成先となるパッケージ。

この属性を指定しない場合、wsdlc Antタスクは、WSDLのtargetNamespaceに基づいてパッケージ名を生成します。

String

いいえ

両方

sortSchemaTypes

XSDファイルでは、名前付きのグローバル型と名前なしのローカル型の2つの複合型が定義されています。デフォルトでは、clientgenは名前なしのローカル型に対して独自の名前を自動的に生成しますが、様々なWSDLファイルをコンパイルする際に生成される名前は常に同一ではありません。

有効にすると、clientgenによって生成されるJavaファイル内の型名が同一になります。

ブール

いいえ

JAX-RPC

srcBindingName

JWSインタフェース・ファイルの生成元になるWSDLバインディングの名前。

wsdlc Antタスクは、WSDLファイル内で最初に見つかった<service>要素に対して実行されます。したがって、この<service>要素に関連付けられている<binding>要素が複数ある場合でも、srcBindingName属性を指定するだけで済みます。

バインディングのネームスペースがサービスのネームスペースと同じであれば、この属性の値にはバインディングの名前を指定するだけですみます。例:

srcBindingName="MyBinding"

ただし、バインディングのネームスペースがサービスのネームスペースとは異なる場合、以下の形式でネームスペースURIも指定する必要があります。

srcBindingName="{URI}BindingName"

たとえば、MyBindingバインディングのネームスペースURIがwww.examples.orgであれば、次のように属性値を指定します。

srcBindingName="{www.examples.org}MyBinding"

注意:この属性はWebLogic Server 9.2では非推奨です。かわりにsrcPortNameまたはsrcServiceNameを使用します。

String

WSDLファイルに複数の<binding>要素が格納されている場合のみ

JAX-RPC

srcPortName

JWSインタフェース・ファイルの生成元になるWSDLポートの名前。

この属性の値は、JWSインタフェース・ファイルの生成対象のWebサービス・ポートに対応する<port>要素のname属性の値に設定します。<port>要素は、WSDLファイル内の<service>要素の子要素です。

この属性を指定しない場合、wsdlcは、srcServiceNameによって指定されるサービスからJWSインタフェース・ファイルを生成します。

注意: JAX-RPCのために、この属性を指定した場合、srcServiceNameを同時に指定することはできません。

String

いいえ

両方

srcServiceName

JWSインタフェース・ファイルの生成元になるWebサービスの名前。

この属性の値は、JWSインタフェース・ファイルの生成対象のWebサービスに対応する<service>要素のname属性の値に設定します。

wsdlc Antタスクは、特定のWebサービスに対して、JWSエンドポイント・インタフェースとデータ・バインディングJARファイルを1つずつ生成します。これは、<service>要素に複数の<port>要素が含まれている場合、次の事項を満たす必要があることを意味します。

- 各ポートのバインディングは同一か、お互い等価である必要があります。

- 各ポートのトランスポートは異なっている必要があります。wsdlc Antタスクは、<address>子要素にリストされているアドレスからポートのトランスポートを判別します。WebLogic Webサービスでサポートされているトランスポートは3つ(JMS、HTTPおよびHTTPS)のみであるため、この属性で指定される<service>要素に対して指定できる<port>子要素は最高でも3つです。生成されたJWS実装ファイルには、対応する@WLXXXTransportアノテーションが含まれます(JAX-RPC Webサービスの場合)。

この属性またはsrcPortName属性のいずれも指定しない場合、WSDLファイルに含めることができる<service>要素は1つのみです。wsdlc Antタスクは、この1つのWebサービスからJWSインタフェース・ファイルとデータ・バインディングJARファイルを生成します。

注意: JAX-RPCに対して、この属性を指定した場合、srcPortNameを同時に指定することはできません。

String

いいえ

両方

srcWsdl

JWSインタフェースとデータ・バインディング・アーティファクトを格納するJARファイルの生成に使用するWSDLファイルの名前。

名前は、パス名(絶対パスまたはAnt build.xmlファイルを格納するディレクトリを基準とする相対パス)を含んでいる必要があります。

String

はい

両方

type

部分的な実装の生成対象であるWebサービスのタイプ(JAX-WSまたはJAX-RPC)を指定します。

有効な値は以下のとおりです。

- JAXWS

- JAXRPC

デフォルト値はJAXRPCです。

String

いいえ

両方

typeFamily

生成するデータ・バインディング・クラスのタイプを指定します。

有効な値は以下のとおりです。

- TYLAR: 『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のJAXBデータ・バインディングの使用に関する項で説明されている、標準のWebLogic Webサービス・データ・バインディング・クラスです。

- XMLBEANS

- XMLBEANS_APACHE

デフォルト値はTYLARです。

注意: JAXBデータ・バインディング・クラスは、常にJAX-WS Webサービスに対して生成されます。

String

いいえ

JAX-RPC

wlw81CallbackGen

WebLogic Workshop 8.1形式のコールバックを生成するかどうかを指定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値は、Falseです。

ブール

いいえ

JAX-RPC

wsdlcに適用される標準のAnt javac属性

WebLogic固有のwsdlc属性の他に、次に示す標準javac属性も定義できます。各属性の詳細は、http://ant.apache.org/manual/にあるAntのドキュメントを参照してください。

- bootclasspath

- bootClasspathRef

- classpath

- classpathRef

- compiler

- debug

- debugLevel

- depend

- deprecation

- destdir

- encoding

- extdirs

- failonerror

- fork

- includeantruntime

- includejavaruntime

- listfiles

- memoryInitialSize

- memoryMaximumSize

- nowarn

- optimize

- proceed

- source

- sourcepath

- sourcepathRef

- tempdir

- verbose

wsdlc Antタスクでは、次の標準Ant子要素も使用できます。

- <FileSet>

- <SourcePath>

- <Classpath>

- <Extdirs>

wsdlget

wsdlget Antタスクは、WSDLとそのインポートされたXMLリソースをローカル・ディレクトリにダウンロードします。

ダウンロード・ファイルは、アプリケーションのリモートXMLリソースをローカル・バージョンのリソースにリダイレクトするようにXMLカタログを定義し、そのカタログを参照する場合に使用することができます。XMLカタログの使用の詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のXMLカタログの使用に関する項を参照してください。

以下の項では、wsdlgetに関するその他の重要な情報について説明します。

- Taskdefのクラス名

- 例

- 子要素

- 属性

Taskdefのクラス名

<taskdef name="wsdlget"
classname="weblogic.wsee.tools.anttasks.WsdlGetTask"/>

例

次のAnt build.xmlファイルの抜粋は、wsdlget Antタスクを使用してWSDLとそのインポートされたXMLリソースをダウンロードする方法を示しています。XMLリソースは、Antタスクが実行されるディレクトリ内のwsdlフォルダに保存されます。

<target name="wsdlget"
<wsdlget
wsdl="http://host/service?wsdl"
destDir="./wsdl/"
/>
</target>

子要素

wsdlget Antタスクには、<xmlcatalog>というweblogic固有の子要素があります。<xmlcatalog>子要素には、組込みXMLカタログのIDを指定します。要素の構文は次のとおりです。

<xmlcatalog refid="id"/>

<xmlcatalog>によって参照されるIDは、組込みXMLカタログのIDと一致していなければなりません。build.xmlファイルにXMLカタログを組み込むには、次の構文を使用します。

<xmlcatalog id="id">
<entity publicid="public_id" location="uri"/>
</xmlcatalog>

上の構文で、public_idには元のXMLリソース(WSDLまたはXSD)のパブリックIDを指定し、uriには置換XMLリソースを指定します。

以下の例は、XMLカタログを組み込んでwsdlgetを使用して参照する方法を示しています。関連するコード行は太字で示しています。

<target name="wsdlget">
<wsdlget
wsdl="${wsdl}"
destDir="${wsdl.dir}"
catalog="wsdlcatalog.xml"/>
<xmlcatalog refid="wsimportcatalog"/>
</wsdlget>
</target>
<xmlcatalog id="wsimportcatalog">
<entity publicid="http://helloservice.org/types/HelloTypes.xsd"
location="${basedir}/HelloTypes.xsd"/>
</xmlcatalog>

詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のXMLカタログの使用に関する項を参照してください。

属性

次の表では、wsdlget Antタスクの属性について説明します。

表2-14 wsdlget AntタスクのWebLogic固有の属性

属性

説明

データ型

必須?

JAX-RPC/JAX-WS/両方

catalog

外部XMLカタログ・ファイルを指定します。XMLカタログ・ファイルの作成の詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のXMLカタログの使用に関する項を参照してください。

String

いいえ

両方

destDir

XMLリソースのコピー先のディレクトリ。

生成されたJWSファイルは、生成されたJWSインタフェース・ファイル(JARファイル内に格納)を実装します。メソッドを目的どおりに実行するようにそのメソッドにJavaコードを追加して、このJWS実装ファイルを更新し、後でjwsc Antタスクに対してこの更新されたJWSファイルを指定して、デプロイ可能なWebサービスを生成します。

String

はい

両方

wsdl

ローカル・ディレクトリにコピーするWSDLの名前。

String

いいえ

両方

3 JWSアノテーション・リファレンス

この章では、WebLogic固有のJWSアノテーションに関するリファレンスを提供します。

この章では、以下のトピックについて説明します。

- JWSアノテーション・タグの概要

- Webサービス・メタデータ・アノテーション(JSR-181)

- JAX-WSアノテーション(JSR-224)

- JAXBアノテーション(JSR-222)

- 共通アノテーション(JSR-250)

- WebLogic固有のアノテーション

JWSアノテーション・タグの概要

WebLogic Webサービスのプログラミング・モデルでは、JDK 5.0メタデータ・アノテーション機能(http://www.jcp.org/en/jsr/detail?id=175JSR-175による仕様)を採用しています。このプログラミング・モデルでは、アノテーション付きのJavaファイルを作成し、Antタスクを使用してそのファイルをJavaクラスにコンパイルし、関連するアーティファクトをすべて生成します。

アノテーション付きのJava Webサービス(JWS)ファイルは、Webサービスの中核部分です。このファイルにはWebサービスの動作を決定するJavaコードが含まれています。JWSファイルは、アノテーションを使用してWebサービスの形式や特性を指定した、通常のJavaクラス・ファイルです。

サポートされるJWSアノテーションは、JAX-WSを作成しているか、JAX-RPC Webサービスを作成しているかによって異なります。次の表は、JAX-WSとJAX-RPCにおけるWebサービスのアノテーション・サポートの比較を示しています。

表3-1 Webサービスのアノテーション・サポート

アノテーション

JAX-WS

JAX-RPC

Webサービス・メタデータ・アノテーション(JSR-181)

x

x

JAX-WSアノテーション(JSR-224)

x

JAXBアノテーション(JSR-222)

x

共通アノテーション(JSR-250)

x

WebLogic固有のアノテーション

x

x

JWSアノテーションは、JWSファイルのクラス、メソッド、またはパラメータのいずれかのレベルでターゲット指定できます。アノテーションの中には、複数のレベルでターゲット指定できるものもあります。たとえば、@SecurityRolesは、クラスとメソッドの両方のレベルでターゲット指定できます。

次に、標準JSR-181(太字で表示)を使用した簡単なJWSファイルの例を挙げます。

package examples.webservices.complex;
// Import the standard JWS annotation interfaces
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
// Import the BasicStruct JavaBean
import examples.webservices.complex.BasicStruct;
// Standard JWS annotation that specifies that the portType name of the Web
// Service is "ComplexPortType", its public service name is "ComplexService",
// and the targetNamespace used in the generated WSDL is "http://example.org"
@WebService(serviceName="ComplexService", name="ComplexPortType",
targetNamespace="http://example.org")
// Standard JWS annotation that specifies this is a document-literal-wrapped
// Web Service
@SOAPBinding(style=SOAPBinding.Style.DOCUMENT,
use=SOAPBinding.Use.LITERAL,
parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)
/**
* This JWS file forms the basis of a WebLogic Web Service.  The Web Services
* has two public operations:
*
*  - echoInt(int)
*  - echoComplexType(BasicStruct)
*
* The Web Service is defined as a "document-literal" service, which means
* that the SOAP messages have a single part referencing an XML Schema element
* that defines the entire body.
*
*/
public class ComplexImpl {
// Standard JWS annotation that specifies that the method should be exposed
// as a public operation.  Because the annotation does not include the
// member-value "operationName", the public name of the operation is the
// same as the method name: echoInt.
//
// The WebResult annotation specifies that the name of the result of the
// operation in the generated WSDL is "IntegerOutput", rather than the
// default name "return".   The WebParam annotation specifies that the input
// parameter name in the WSDL file is "IntegerInput" rather than the Java
// name of the parameter, "input".
@WebMethod()
@WebResult(name="IntegerOutput",
targetNamespace="http://example.org/complex")
public int echoInt(
@WebParam(name="IntegerInput",
targetNamespace="http://example.org/complex")
int input)
{
System.out.println("echoInt '" + input + "' to you too!");
return input;
}
// Standard JWS annotation to expose method "echoStruct" as a public operation
// called "echoComplexType"
// The WebResult annotation specifies that the name of the result of the
// operation in the generated WSDL is "EchoStructReturnMessage",
// rather than the default name "return".
@WebMethod(operationName="echoComplexType")
@WebResult(name="EchoStructReturnMessage",
targetNamespace="http://example.org/complex")
public BasicStruct echoStruct(BasicStruct struct)
{
System.out.println("echoComplexType called");
return struct;
}
}

次の項では、サポートされるJWSアノテーションについて説明します。

Webサービス・メタデータ・アノテーション(JSR-181)

次の表は、Webサービスの形態と動作を指定するためにJWSファイルで使用できる標準JSR-181アノテーションをまとめたものです。これらの各アノテーションは、javax.jws (http://download.oracle.com/javaee/6/api/javax/jws/package-summary.html)またはjavax.jws.soapパッケージ(http://download.oracle.com/javaee/6/api/javax/jws/soap/package-summary.html)を使用することで利用できます。詳細は、Web Services Metadata for the Java Platform (JSR-181)仕様(http://www.jcp.org/en/jsr/detail?id=181)を参照してください。

表3-2 標準JSR-181 JWSアノテーション

アノテーション

説明

javax.jws.WebService

クラス・レベルでJWSファイルがWebサービスを実装することを指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』または『Oracle WebLogic Server JAX-RPC Webサービス・スタート・ガイド』のJWSファイルがWebサービスを実装することの指定(@WebServiceアノテーション)に関する項を参照してください。

javax.jws.WebMethod

JWSファイルのメソッドをWebサービスのパブリック操作として公開することを指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』または『Oracle WebLogic Server JAX-RPC Webサービス・スタート・ガイド』のJWSメソッドをパブリック操作として公開することの指定(@WebMethodおよび@OneWayアノテーション)に関する項を参照してください。

javax.jws.OneWay

操作が呼出し側アプリケーションに値を戻さないことを指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』または『Oracle WebLogic Server JAX-RPC Webサービス・スタート・ガイド』のJWSメソッドをパブリック操作として公開することの指定(@WebMethodおよび@OneWayアノテーション)に関する項を参照してください。

javax.jws.WebParam

Webサービス操作の入力パラメータと生成されたWSDLファイルの要素のマッピング、およびパラメータの動作を指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』または『Oracle WebLogic Server JAX-RPC Webサービス・スタート・ガイド』の操作のパラメータとWSDL要素のマッピングのカスタマイズ(@WebParamアノテーション)に関する項を参照してください。

javax.jws.WebResult

Webサービス操作の戻り値と生成されたWSDLファイルの対応する要素のマッピングを指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』または『Oracle WebLogic Server JAX-RPC Webサービス・スタート・ガイド』の操作の戻り値とWSDL要素のマッピングのカスタマイズ(@WebResultアノテーション)に関する項を参照してください。

javax.jws.HandlerChain

外部ハンドラ・チェーンを指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』または『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』のSOAPメッセージ・ハンドラの作成と使用に関する項を参照してください。

javax.jws.soap.SOAPBinding

クラス・レベルでWebサービスのSOAPバインディング(document-encodedやdocument-literal-wrappedなど)を指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』または『Oracle WebLogic Server JAX-RPC Webサービス・スタート・ガイド』のWebサービスとSOAPメッセージ・プロトコルのマッピングの指定(@SOAPBindingアノテーション)に関する項を参照してください。

JAX-WSアノテーション(JSR-224)

注意:
JAX-WS JWSアノテーションは、JAX-WS Webサービスにのみ関連します。この項の内容は、JAX-RPC Webサービスには適用されません。

次の表は、Webサービスの形態と動作を指定するためにJWSファイルで使用できるJAX-WS (JSR-224)アノテーションをまとめたものです。これらの各アノテーションは、javax.xml.wsパッケージ(http://download.oracle.com/javaee/6/api/javax/xml/ws/package-summary.html)を使用することで利用できます。詳細は、「JAX-WS 2.1 Annotations」(http://jax-ws.java.net/nonav/2.1.4/docs/annotations.html)を参照してください。

表3-3 JAX-WS (JSR-244)アノテーション

アノテーション

説明

javax.xml.ws.Action

WS-Addressing Actionメッセージ・アドレッシング・プロパティと、マップされたWSDL操作のinput、output、およびfaultメッセージの明示的な関連付けを許可するかどうかを指定します。

javax.xml.ws.BindingType

Webサービスの実装クラスに使用するバインディングを指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のエンドポイントに使用するバインディング・タイプの指定(@BindingTypeアノテーション)に関する項を参照してください。

javax.xml.ws.FaultAction

WS-Addressing Actionメッセージ・アドレッシング・プロパティと、例外クラスからマップされたWSDL操作のフォールト・メッセージの明示的な関連付けを許可するかどうかを指定します。@FaultActionアノテーションは、@Actionアノテーションの内部で使用されます。

javax.xml.ws.RequestWrapper

実行時にエンドポイント・インタフェースのメソッドに使用されるリクエスト・ラッパーBeanを指定します。

javax.xml.ws.ResponseWrapper

実行時にエンドポイント・インタフェースのメソッドに使用されるレスポンス・ラッパーBeanを指定します。

javax.xml.ws.ServiceMode

プロバイダ実装がプロトコル・メッセージ全体を対象とするのか、ペイロードのみを対象にするのかを指定します。

javax.xml.ws.WebEndpoint

生成されたサービス・インタフェースのgetPortName()メソッドを指定します。

javax.xml.ws.WebFault

フォールト要素のローカルおよびネームスペース名、フォールトBeanの名前をそれぞれカスタマイズするためのサーバー固有の例外クラスを指定します。

javax.xml.ws.WebServiceClient

生成されたサービス・インタフェースを指定します。

javax.xml.ws.WebServiceProvider

プロバイダ実装クラスを指定します。

javax.xml.ws.WebServiceRef

Webサービスへの参照を指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』の@WebServiceRefアノテーションを使用したWebサービス参照の定義に関する項を参照してください。

JAXBアノテーション(JSR-222)

注意:
JAXB JWSアノテーションは、JAX-WS Webサービスにのみ関連します。この項の内容は、JAX-RPC Webサービスには適用されません。

JAXB (JSR-222)(http://jcp.org/en/jsr/detail?id=222)仕様は、Webサービスの形態と動作を指定するためにJWSファイルで使用可能なJAXBアノテーションを定義しています。次の表は、JAXBアノテーションをまとめたものです。これらの各アノテーションは、javax.xml.bind.annotationパッケージ(http://download.oracle.com/javaee/6/api/javax/xml/bind/annotation/package-summary.html)を使用することで利用できます。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のJAXBアノテーションを使用したJava-to-XMLスキーマ・マッピングのカスタマイズに関する項またはJAXB (JSR-222)仕様(http://jcp.org/en/jsr/detail?id=222)を参照してください。

表3-4 JAXBマッピング・アノテーション(JSR-222)

アノテーション

説明

java.xml.bind.annotation.XmlAccessorType

デフォルトでフィールドまたはプロパティをシリアライズするかどうかを指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のフィールドおよびプロパティのデフォルト・シリアライゼーションの指定(@XmlAccessorType)に関する項を参照してください。

java.xml.bind.annotation.XmlElement

クラスに格納されているプロパティを、格納しているクラスがマップされているXMLスキーマの複合型のローカル要素へマップすることを指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のプロパティとローカル要素のマッピング(@XmlElement)に関する項を参照してください。

java.xml.bind.annotation.XmlRootElement

WebサービスのWSDLによって使用されるXMLスキーマのグローバル要素に最上位クラスをマップすることを指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』の最上位クラスとグローバル要素のマッピング(@XmlRootElement)に関する項を参照してください。

java.xml.bind.annotation.XmlSeeAlso

現在のクラスをバインドするときにバインドする他のクラスを指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』の複数のクラスのバインディング(@XmlSeeAlso)に関する項を参照してください。

java.xml.bind.annotation.XmlType

クラス型または列挙型をXMLスキーマ型にマップすることを指定します。詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』の値クラスとスキーマ型のマッピング(@XmlType)に関する項を参照してください。

共通アノテーション(JSR-250)

次の表は、Webサービスの形態と動作を指定するためにJWSファイルで使用可能なJAX-WS (JSR-250)アノテーションをまとめたものです。

これらの各アノテーションは、javax.annotationパッケージ(http://download.oracle.com/javaee/6/api/javax/annotation/package-summary.html)を使用することで利用できます。詳細は、Common Annotations for the Java Platform(JSR-250)(http://jcp.org/en/jsr/detail?id=250)仕様を参照してください。

表3-5 共通アノテーション(JSR-250)

アノテーション

説明

javax.annotation.Resource

アプリケーションが必要とするリソースを指定します。アノテーションは、アプリケーション・コンポーネント・クラス、コンポーネント・クラスのフィールドまたはメソッドに適用できます。

javax.annotation.PostConstruct

依存関係インジェクションが完了した後に、初期化を実行するために呼び出す必要のあるメソッドを指定します。

javax.annotation.PreDestroy

コンテナがインスタンスを削除しようとしていることを知らせるコールバック通知を受信するメソッドを指定します。

WebLogic固有のアノテーション

WebLogic Webサービスでは、JSR-181の標準JWSアノテーションに加え、さらに動作と機能を指定するのに使用できるJWSアノテーションのセットが定義されます。次の表は、WebLogic固有のアノテーションをまとめたものです。JAX-WSまたはJAX-RPCでサポートされるかどうかを示しています(ほとんどのアノテーションはJAX-RPCでのみサポートされます)。各アノテーションの詳細については、後の節で説明します。

表3-6 WebLogic固有のアノテーション

アノテーション

説明

JAX-WS/JAX-RPC/両方

weblogic.jws.AsyncFailure

メインJWSファイルが別のWebサービス操作を非同期的に呼び出したときに発生する可能性のある障害を処理するメソッドを指定します。

JAX-RPC

weblogic.jws.AsyncResponse

メインJWSファイルが別のWebサービス操作を非同期的に呼び出したときのレスポンスを処理するメソッドを指定します。

JAX-RPC

weblogic.jws.Binding

SOAP (Simple Object Access Protocol)メッセージの送受信時に、WebサービスでSOAP実装のバージョン1.1を使うのか、バージョン1.2を使うのかを指定します。

JAX-RPC

weblogic.jws.BufferQueue

JMSキューのJNDI名を指定します。WebLogic Serverは、それに対して以下の操作を行います。

- バッファ付きWebサービス操作の呼出しを格納します。

- 信頼性のあるWebサービス操作の呼出しを格納します。

JAX-RPC

weblogic.jws.Callback

アノテーション付き変数がコールバックであることを指定します。つまり、アノテーション付き変数を使って、ターゲットのWebサービス操作を呼び出したクライアントWebサービスにコールバック・イベントを返送できます。

JAX-RPC

weblogic.jws.CallbackMethod

コールバックWebサービスから受け取るメッセージを処理する、クライアントWebサービスのメソッドを指定します。

JAX-RPC

weblogic.jws.CallbackService

JWSファイルが実際に、コールバックWebサービスを記述するJavaインタフェースであることを指定します。

JAX-RPC

weblogic.jws.Context

アノテートされたフィールドがWebサービスの実行時コンテキストへのアクセスを提供するように指定します。

JAX-RPC

weblogic.jws.Conversation

@Conversationアノテーション付きのメソッドが、2つのWebLogic Webサービスの間の会話、またはスタンドアロンJavaクライアントと会話形式のWebサービスとの間の会話の一部として呼び出すことができるように指定します。

JAX-RPC

weblogic.jws.Conversational

JWSファイルが会話形式のWebサービスを実装するように指定します。

JAX-RPC

weblogic.jws.FileStore

会話状態などの内部状態情報の格納に、WebLogic Serverのデフォルト・ファイル・ストアではなく、プログラマ指定のファイル・ストアを使用することを指定します。

JAX-RPC

weblogic.jws.MessageBuffer

JWSのどのパブリック・メソッドがバッファされるかを指定します。クラス・レベルで指定した場合、すべてのパブリック・メソッドがバッファされます。一部のメソッドのみバッファする場合、適切なメソッド・レベルでアノテーションを指定します。

JAX-RPC

weblogic.jws.Policies

@weblogic.jws.Policyアノテーションの配列を指定します。

両方

weblogic.jws.Policy

デジタル署名、暗号化、またはWebサービスの信頼性のあるメッセージングに関する情報を格納しているWS-PolicyファイルをリクエストまたはレスポンスSOAPメッセージに適用するように指定します。

両方

weblogic.jws.ReliabilityBuffer

WebLogic ServerによるJMSキューからWebサービス実装へのメッセージ配信試行回数、およびサーバーが待機すべき再試行間隔など、信頼性のあるWebサービス操作に対する信頼性のあるメッセージングのプロパティを指定します。

JAX-RPC

weblogic.jws.ReliabilityErrorHandler

クライアントWebサービスが信頼性のあるWebサービスを呼び出したが、信頼性のあるWebサービスが実際にそのメッセージを受け取ったという確認応答をそのクライアントが受信しなかった場合に発生するエラーを処理するメソッドを指定します。

JAX-RPC

weblogic.jws.ServiceClient

JWSファイルのアノテーション付き変数が、以下の機能を使用するときに、別のWebLogic Webサービスを呼び出すスタブであることを指定します。

- Webサービスの信頼性のあるメッセージング

- 非同期のリクエスト/レスポンス

- 会話

JAX-RPC

weblogic.jws.StreamAttachments

WebLogic Webサービス・ランタイムで、Webサービスのすべてのメソッド・パラメータを読み込む際にStreaming APIを使用するように指定します。

JAX-RPC

weblogic.jws.Transactional

アノテーション付きの操作、またはアノテーションがクラス・レベルで指定されている場合はJWSファイルのすべての操作がトランザクション内で実行されるかどうかを指定します。

JAX-RPC

weblogic.jws.Types

戻り値またはパラメータの代替データ型の完全修飾Javaクラス名のカンマ区切りリストを指定します。

JAX-RPC

weblogic.jws.WildcardBinding

javax.xml.soap.SOAPElementまたはorg.apache.xmlbeans.XmlObjectなどのワイルドカード・クラスがバインドする先のXMLスキーマ・データ型を指定します。

JAX-RPC

weblogic.jws.WildcardBindings

@weblogic.jws.WildcardBindingアノテーションの配列を指定します。

JAX-RPC

weblogic.jws.WLHttpTransport

生成されたWSDLのポート名に加え、HTTPトランスポート形式でWebサービスを呼び出すために使用するコンテキスト・パスおよびURLのサービスURIセクションを指定します。

JAX-RPC

weblogic.jws.WLHttpsTransport

生成されたWSDLのポート名に加え、HTTPSトランスポート形式でWebサービスを呼び出すために使用するコンテキスト・パスおよびURLのサービスURIセクションを指定します。

JAX-RPC

weblogic.jws.WLJmsTransport

生成されたWSDLのポート名に加え、JMSトランスポート形式でWebサービスを呼び出すために使用するコンテキスト・パスおよびURLのサービスURIセクションを指定します。

JAX-RPC

weblogic.jws.WSDL

デプロイされたWebLogic WebサービスのWSDLを公開するかどうかを指定します。

JAX-RPC

weblogic.jws.security.CallbackRolesAllowed

Webサービスのコールバック・メソッドを呼び出す許可を与えられたロールをリストする@SecurityRole JWSアノテーションの配列を指定します。

JAX-RPC

weblogic.jws.security.RolesAllowed

Webサービスの基本認証を有効にするかどうかを指定します。

JAX-RPC

weblogic.jws.security.RolesReferenced

Webサービスの呼出しが許可されている実際のロールを参照する、ロール名のリストを指定します。

JAX-RPC

weblogic.jws.security.RunAs

WebLogic Server内のWebサービスを実際に実行するロールおよびユーザーIDを指定します。

JAX-RPC

weblogic.jws.security.SecurityRole

Webサービスの呼出しを許可されているロールの名前を指定します。

JAX-RPC

weblogic.jws.security.SecurityRoleRef

Webサービスの呼出しを許可されている、指定済みのロールにリンクするロール名参照を指定します。

JAX-RPC

weblogic.jws.security.UserDataConstraint

クライアントがWebサービスを呼び出す際に、HTTPSトランスポートの使用が必要であるかどうかを指定します。

JAX-RPC

weblogic.jws.security.WssConfiguration

Webサービスで使用するWebサービス・セキュリティ構成の名前を指定します。

両方

weblogic.jws.soap.SOAPBinding

SOAPメッセージ・プロトコルに対するWebサービス操作のマッピングを指定します。

JAX-RPC

weblogic.jws.security.SecurityRoles (非推奨)

Webサービス操作にアクセスできるロールを指定します。

JAX-RPC

weblogic.jws.security.SecurityIdentity (非推奨)

呼び出されたWebサービスが前提とするIDを指定します。

JAX-RPC

weblogic.wsee.jws.jaxws.owsm.SecurityPolicies

@weblogic.jws.SecurityPolicyアノテーションの配列を指定します。

JAX-WS

weblogic.wsee.jws.jaxws.owsm.SecurityPolicy

デジタル署名または暗号化に関する情報を格納しているOracle Web Services Manager (Oracle WSM) WS-PolicyファイルをリクエストまたはレスポンスSOAPメッセージに適用するように指定します。

JAX-WS

weblogic.wsee.wstx.wsat.Transactional

アノテーション付きのクラスまたはメソッドをWebサービス原子性トランザクション内で実行するかどうかを指定します。

JAX-WS

weblogic.jws.AsyncFailure

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:メソッド

メインJWSファイルが別のWebサービス操作を非同期的に呼び出したときに発生する可能性のある障害を処理するメソッドを指定します。

JWSファイルの内部からWebサービス操作を非同期的に呼び出すと、レスポンス(または障害の場合は例外)は、操作呼出しの直後ではなく、多少遅れて返されます。操作呼出しはレスポンスを待たないので、JWSファイル内の別のメソッドは、レスポンスが返された時点でそのレスポンスを処理する必要があります。同様に、さらに別のメソッドは障害を処理する必要があります。@AsyncFailureアノテーションは、非同期操作呼出しによって発生する可能性がある障害を処理する、JWSファイル内のメソッドを指定するために使用します。

@AsyncFailureアノテーションは、呼出し対象となるWebサービスのスタブの名前と、非同期的に呼び出す操作の名前の2つのパラメータを取ります。スタブは、@ServiceClientアノテーションが付けられているスタブです。

非同期障害を処理するメソッドは、以下のガイドラインに従う必要があります。

- voidを返します。

- onMethodNameAsyncFailureという名前が付けられています。このうち、MethodNameは、非同期的に呼び出すメソッドの名前(先頭の文字は常に大文字)です。
メインJWSファイルで、非同期メソッドの呼出しは次のような形式になります。

port.getQuoteAsync (apc, symbol);

getQuoteはメソッドの非同期名ではない名前、apcは非同期呼出し前のコンテキスト、symbolはgetQuote操作に対する標準的なパラメータです。

- 非同期呼出し後のコンテキスト(weblogic.wsee.async.AsyncPostCallContextオブジェクトに格納)、および非同期操作呼出しでスローされる可能性があるThrowable例外の2つのパラメータを持っています。

メソッド自体の内部では、コンテキストからメソッド障害に関する詳細を入手し、特定の型の障害を問い合わせ、それに従って処理を実行できます。

通常、非同期操作障害を処理するメソッドを明示的に指定する場合は、必ず@AsyncFailureアノテーションを使用します。このアノテーションを使用しない唯一のケースは、単一のメソッドで、別のWebサービスを呼び出す複数のスタブの障害を処理する場合です。この場合、スタブは別のWebサービスに接続しますが、Webサービス・ランタイムは、アノテーションではなくメソッドの名前を基に(onMethodNameAsyncFailure)非同期障害の処理方法を判別するので、各Webサービスは、名前が似ているメソッドを持っている必要があります。ただし、操作のいずれか1つから非同期障害を処理するメソッドとスタブとの間に必ず1対1の対応が必要な場合は、@AsyncFailureを明示的に使用することをお薦めします。

このアノテーションの使用の詳細および例は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』の非同期のリクエストとレスポンスを使用したWebサービスの呼出しに関する項を参照してください。

属性

表3-7 weblogic.jws.AsyncFailure JWSアノテーション・タグの属性

名前

説明

データ型

必須?

target

操作を非同期的に呼び出すWebサービスのスタブの名前。

スタブは、@ServiceClientフィールド・レベルのアノテーションが付けられているものです。

String

はい

operation

非同期的に呼び出す操作の名前。

この名前は、WSDLファイルで示されている操作の実際の名前です。JWSファイルのメイン・コードでこの操作を呼び出すときに、その操作名にAsyncを追加します。

たとえば、operation="getQuote"と設定した場合、JWSファイルでは、操作を次のように非同期的に呼び出します。

port.getQuoteAsync (apc, symbol);

String

はい

例

以下のサンプル・スニペットでは、別のWebサービス操作を非同期的に呼び出す、JWSファイル内の@AsyncFailureアノテーションの使い方を示します。ここでは、関連するJavaコードのみを示します。

package examples.webservices.async_req_res;
...
public class StockQuoteClientImpl {
@ServiceClient(wsdlLocation="http://localhost:7001/async/StockQuote?WSDL",
serviceName="StockQuoteService", portName="StockQuote")
private StockQuotePortType port;
@WebMethodpublic void getQuote (String symbol) {
AsyncPreCallContext apc = AsyncCallContextFactory.getAsyncPreCallContext();
apc.setProperty("symbol", symbol);
try {
port.getQuoteAsync(apc, symbol );
System.out.println("in getQuote method of StockQuoteClient WS");
}
catch (RemoteException e) {
e.printStackTrace();
}
}
...
@AsyncFailure(target="port", operation="getQuote")
public void onGetQuoteAsyncFailure(AsyncPostCallContext apc, Throwable e) {
System.out.println("-------------------");
e.printStackTrace();
System.out.println("-------------------");
}
}

この例では、portというスタブが、http://localhost:7001/async/StockQuoteにあるWebサービスを呼び出すために使用されています。getQuote操作が非同期的に呼び出され、この呼出しで例外が発生すると、@AsyncFailureアノテーションで指定されているonGetQuoteAsyncFailureメソッドによって処理されます。

weblogic.jws.AsyncResponse

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:メソッド

メインJWSファイルが別のWebサービス操作を非同期的に呼び出したときのレスポンスを処理するメソッドを指定します。

JWSファイルの内部からWebサービス操作を非同期的に呼び出すと、レスポンスは、操作呼出しの直後ではなく、多少遅れて返されます。操作呼出しはレスポンスを待たないので、JWSファイル内の別のメソッドは、レスポンスが最終的に返された時点でそのレスポンスを処理する必要があります。@AsyncResponseアノテーションは、非同期操作呼出しのレスポンスを処理する、JWSファイル内のメソッドを指定するために使用します。

@AsyncResponseアノテーションは、呼出し対象となるWebサービスのスタブの名前と、非同期的に呼び出す操作の名前の2つのパラメータを取ります。スタブは、@ServiceClientアノテーションが付けられているスタブです。

非同期レスポンスを処理するメソッドは、以下のガイドラインに従う必要があります。

- voidを返します。

- OnMethodNameAsyncResponseという名前が付けられています。このうち、MethodNameは、非同期的に呼び出すメソッドの名前(先頭の文字は常に大文字)です。
メインJWSファイルで、非同期メソッドの呼出しは次のような形式になります。

port.getQuoteAsync (apc, symbol);

getQuoteはメソッドの非同期名ではない名前、apcは非同期呼出し前のコンテキスト、symbolはgetQuote操作に対する標準的なパラメータです。

- 非同期呼出し後のコンテキスト(weblogic.wsee.async.AsyncPostCallContextオブジェクトに格納)、および操作の通常の戻り値の2つのパラメータを持っています。

非同期レスポンス・メソッド自体の内部では、レスポンスを処理するコードを追加します。また、コンテキストからメソッド呼出しに関する詳細を入手できます。

通常、非同期操作レスポンスを処理するメソッドを明示的に指定する場合は、必ず@AsyncResponseアノテーションを使用します。このアノテーションを使用しない唯一のケースは、単一のメソッドで、別のWebサービスを呼び出す複数のスタブのレスポンスを処理する場合です。この場合、スタブは別のWebサービスに接続しますが、Webサービス・ランタイムは、アノテーションではなくメソッドの名前を基に(onMethodNameAsyncResponse)非同期レスポンスの処理方法を判別するので、各Webサービスは、名前が似ているメソッドを持っている必要があります。ただし、操作のいずれか1つから非同期レスポンスを処理するメソッドとスタブとの間に必ず1対1の対応が必要な場合は、@AsyncResponseを明示的に使用することをお薦めします。

このアノテーションの使用の詳細および例は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』の非同期のリクエストとレスポンスを使用したWebサービスの呼出しに関する項を参照してください。

属性

表3-8 weblogic.jws.AsyncResponse JWSアノテーション・タグの属性

名前

説明

データ型

必須?

target

操作を非同期的に呼び出すWebサービスのスタブの名前。

スタブは、@ServiceClientフィールド・レベルのアノテーションが付けられているものです。

String

はい

operation

非同期的に呼び出す操作の名前。

この名前は、WSDLファイルで示されている操作の実際の名前です。JWSファイルのメイン・コードでこの操作を呼び出すときに、その操作名にAsyncを追加します。

たとえば、operation="getQuote"と設定した場合、JWSファイルでは、操作を次のように非同期的に呼び出します。

port.getQuoteAsync (apc, symbol);

String

はい

例

以下のサンプル・スニペットでは、別のWebサービス操作を非同期的に呼び出す、JWSファイル内の@AsyncResponseアノテーションの使い方を示します。ここでは、関連するJavaコードのみを示します。

package examples.webservices.async_req_res;
...
public class StockQuoteClientImpl {
@ServiceClient(wsdlLocation="http://localhost:7001/async/StockQuote?WSDL",
serviceName="StockQuoteService", portName="StockQuote")
private StockQuotePortType port;
@WebMethodpublic void getQuote (String symbol) {
AsyncPreCallContext apc = AsyncCallContextFactory.getAsyncPreCallContext();
apc.setProperty("symbol", symbol);
try {
port.getQuoteAsync(apc, symbol );
System.out.println("in getQuote method of StockQuoteClient WS");
}
catch (RemoteException e) {
e.printStackTrace();
}
}
...
@AsyncResponse(target="port", operation="getQuote")
public void onGetQuoteAsyncResponse(AsyncPostCallContext apc, int quote) {
System.out.println("-------------------");
System.out.println("Got quote " + quote );
System.out.println("-------------------");
}
}

この例では、portというスタブが、http://localhost:7001/async/StockQuoteにあるWebサービスを呼び出すために使用されています。getQuote操作が非同期的に呼び出され、この呼出しに対するレスポンスは、@AsyncResponseアノテーションで指定されているonGetQuoteAsyncResponseメソッドによって処理されます。

weblogic.jws.Binding

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

SOAP (Simple Object Access Protocol)メッセージの送受信時に、WebサービスでSOAP実装のバージョン1.1を使うのか、バージョン1.2を使うのかを指定します。デフォルトでは、WebLogic WebサービスはSOAP 1.1を使用します。

属性

表3-9 weblogic.jws.Binding JWSアノテーション・タグの属性

名前

説明

データ型

必須?

value

Webサービスを呼び出す際に、リクエストおよびレスポンスのSOAPメッセージにおいて使用するSOAPのバージョンを指定します。

この属性の有効な値は以下のとおりです。

- Type.SOAP11

- Type.SOAP12

デフォルト値はType.SOAP11です。

enum

いいえ

例

次に、SOAP 1.2を指定する例を示します(関連するコードのみ示されています)。

package examples.webservices.soap12;
...
import javax.jws.WebMethod;
import javax.jws.WebService;
import weblogic.jws.Binding;
@WebService(name="SOAP12PortType",
serviceName="SOAP12Service",
targetNamespace="http://example.org")
@Binding(Binding.Type.SOAP12)
public class SOAP12Impl {
@WebMethod()
public String sayHello(String message) {
...
}
}

weblogic.jws.BufferQueue

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

JMSキューのJNDI名を指定します。WebLogic Serverは、それに対して以下の操作を行います。

- バッファ付きWebサービス操作の呼出しを格納します。

- 信頼性のあるWebサービス操作の呼出しを格納します。

バッファ付きWebサービスで使用する場合、このアノテーションは、バッファリングされたJWSのメソッドを指定する@MessageBufferと組み合せて使用します。信頼性のあるWebサービスで使用する場合、このアノテーションは、Webサービスに関連付けられた、信頼性のあるメッセージングWS-Policyファイルを指定する@Policyと組み合せて使用します。

Webサービスに対してバッファ付きまたは信頼性のあるメッセージングを有効にしているが、@BuffereQueueアノテーションを指定していない場合、WebLogic Serverは、デフォルトのWebサービスJMSキュー(weblogic.wsee.DefaultQueue)を使用して、バッファ付きまたは信頼性のある操作の呼出しを格納します。このJMSキューは、JMSトランスポート機能のデフォルト・キューでもあります。これらの機能のいずれかに対してこのJMSキューを使用する場合は、JMSキューをあらかじめ作成していることが前提となります。

バッファ付きまたは信頼性のあるWebサービスの作成の詳細および例は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』のバッファ付きWebサービスの作成に関する項とWebサービスの信頼性のあるメッセージングの使用に関する項を参照してください。

属性

表3-10 weblogic.jws.BufferQueue JWSアノテーション・タグの属性

名前

説明

データ型

必須?

name

バッファ付きまたは信頼性のある操作の呼出しを入れるJMSキューのJNDI名。

String

はい

例

以下の例では、JWSファイルのコード・スニペットを示します。ここでは、パブリック操作がバッファ付きで、WebLogic Serverが操作の呼出しを入れているJMSキューがmy.buffere.queueと呼ばれています。関連するJavaコードのみを示します。

package examples.webservices.buffered;
...
@WebService(name="BufferedPortType",
serviceName="BufferedService",
targetNamespace="http://example.org")
@BufferQueue(name="my.buffer.queue")
public class BufferedImpl {
...
@WebMethod()
@MessageBuffer(retryCount=10, retryDelay="10 seconds")
@Oneway()
public void sayHelloNoReturn(String message) {
System.out.println("sayHelloNoReturn: " + message);
}
}

weblogic.jws.Callback

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット: フィールド

アノテーション付き変数がコールバックであることを指定します。つまり、アノテーション付き変数を使って、ターゲットWebサービス操作を呼び出したクライアントWebサービスにコールバック・イベントを返送できます。

ターゲットWebサービスにおいて@Callbackアノテーションを指定すると、クライアントWebサービスにコールバックできます。アノテーション付き変数のデータ型は、コールバック・インタフェースです。

コールバック機能は、2つのWebLogic Webサービス間で機能します。ただし、この機能をプログラミングする際、次の3つのJavaファイルを作成します。

- コールバック・インタフェース :コールバック・メソッドを定義するJavaインタフェース・ファイル。このファイルは、明示的に実装するのではなく、jwsc Antタスクによってこのインタフェースの実装が自動的に生成されます。この実装によって、ターゲットWebサービスからクライアントWebサービスにメッセージが返送されます。生成されたWebサービスは、クライアントWebサービスをホストする同じWebLogic Serverにデプロイされます。

- ターゲットWebサービスを実装するJWSファイル :ターゲットWebサービスには、コールバック・インタフェースで定義されたメソッドを呼び出す1つまたは複数の標準操作が含まれます。このメソッドによって、ターゲットWebサービス操作の呼出し元のクライアントWebサービスにメッセージが返送されます。

- クライアントWebサービスを実装するJWSファイル :クライアントWebサービスは、ターゲットWebサービス操作を呼び出します。このWebサービスには、コールバック・メソッドを介してターゲットWebサービスからコールバック・メッセージを受け取ったときに、クライアントが実行すべき動作を指定する1つまたは複数のメソッドが含まれます。

コールバックのプログラミングの詳細および手順は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』のコールバックによるクライアントへのイベントの通知に関する項を参照してください。

@Callbackアノテーションには、属性はありません。

例

次に、callbackという変数に@Callbackアノテーションを付けた非常に簡単なターゲットWebサービスの例を示します。この変数のデータ型はCallbackInterfaceで、これは、コールバックWebサービスがこの名前で存在する必要があることを意味します。変数にコールバック情報が注入された後で、CallbackInterfaceで定義されているコールバック・メソッドを呼び出すことができます。この例では、callbackOperation()がコールバック・メソッドです。

関連コードは、太字で示しています。

package examples.webservices.callback;
import weblogic.jws.WLHttpTransport;
import weblogic.jws.Callback;
import javax.jws.WebService;
import javax.jws.WebMethod;
@WebService(name="CallbackPortType",
serviceName="TargetService",
targetNamespace="http://examples.org/")
@WLHttpTransport(contextPath="callback",
serviceUri="TargetService",
portName="TargetServicePort")
public class TargetServiceImpl {
@Callback
CallbackInterface callback;
@WebMethod
public void targetOperation (String message) {
callback.callbackOperation (message);
}
}

weblogic.jws.CallbackMethod

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:メソッド

コールバックWebサービスから受け取るメッセージを処理する、クライアントWebサービスのメソッドを指定します。この属性を使うと、クライアントWebサービス内のコールバック・メッセージ・ハンドラ・メソッドと、コールバック・インタフェース内のコールバック・メソッドをリンクできます。

コールバック機能は、2つのWebLogic Webサービス間で機能します。ただし、この機能をプログラミングする際、次の3つのJavaファイルを作成します。

- コールバック・インタフェース :コールバック・メソッドを定義するJavaインタフェース・ファイル。このファイルは、明示的に実装するのではなく、jwsc Antタスクによってこのインタフェースの実装が自動的に生成されます。この実装によって、ターゲットWebサービスからクライアントWebサービスにメッセージが返送されます。生成されたWebサービスは、クライアントWebサービスをホストする同じWebLogic Serverにデプロイされます。

- ターゲットWebサービスを実装するJWSファイル :ターゲットWebサービスには、コールバック・インタフェースで定義されたメソッドを呼び出す1つまたは複数の標準操作が含まれます。このメソッドによって、ターゲットWebサービス操作の呼出し元のクライアントWebサービスにメッセージが返送されます。

- クライアントWebサービスを実装するJWSファイル :クライアントWebサービスは、ターゲットWebサービス操作を呼び出します。このWebサービスには、コールバック・メソッドを介してターゲットWebサービスからコールバック・メッセージを受け取ったときに、クライアントが実行すべき動作を指定する1つまたは複数のメソッドが含まれます。

コールバックのプログラミングの詳細および手順は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』のコールバックによるクライアントへのイベントの通知に関する項を参照してください。

属性

表3-11 weblogic.jws.CallbackMethod JWSアノテーション・タグの属性

名前

説明

データ型

必須?

operation

このメソッドで処理するコールバック・メッセージのコールバック・インタフェース内のコールバック・メソッドの名前を指定します。

String

はい

target

コールバックを受け取るスタブの名前を指定します。

スタブは、@ServiceClientフィールド・レベルのアノテーションが付けられているものです。

String

はい

例

次に、@CallbackMethodアノテーションが付けられているクライアントWebサービスのメソッドを示します。この属性では、portという変数に前もってスタブ情報が注入されていること、およびアノテーション付きメソッドがcallbackOperation()というコールバック操作から受信したメッセージを処理することが示されています。

@CallbackMethod(target="port", operation="callbackOperation")
@CallbackRolesAllowed(@SecurityRole(role="engineer",  mapToPrincipals="shackell"))
public void callbackHandler(String msg) {
System.out.println (msg);
}

weblogic.jws.CallbackService

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

JWSファイルが実際に、コールバックWebサービスを記述するJavaインタフェースであることを指定します。このアノテーションは、@javax.jws.WebServiceに似ていますが、コールバックに限定され、属性の数も制限されています。

コールバック機能は、2つのWebLogic Webサービス間で機能します。ただし、この機能をプログラミングする際、次の3つのJavaファイルを作成します。

- コールバック・インタフェース :コールバック・メソッドを定義するJavaインタフェース・ファイル。このファイルは、明示的に実装するのではなく、jwsc Antタスクによってこのインタフェースの実装が自動的に生成されます。この実装によって、ターゲットWebサービスからクライアントWebサービスにメッセージが返送されます。生成されたWebサービスは、クライアントWebサービスをホストする同じWebLogic Serverにデプロイされます。

- ターゲットWebサービスを実装するJWSファイル :ターゲットWebサービスには、コールバック・インタフェースで定義されたメソッドを呼び出す1つまたは複数の標準操作が含まれます。このメソッドによって、ターゲットWebサービス操作の呼出し元のクライアントWebサービスにメッセージが返送されます。

- クライアントWebサービスを実装するJWSファイル :クライアントWebサービスは、ターゲットWebサービス操作を呼び出します。このWebサービスには、コールバック・メソッドを介してターゲットWebサービスからコールバック・メッセージを受け取ったときに、クライアントが実行すべき動作を指定する1つまたは複数のメソッドが含まれます。

@CallbackInterfaceアノテーションを使うと、Javaファイルがコールバック・インタフェース・ファイルであることが指定されます。

コールバック・インタフェースをプログラミングする際、標準の非コールバックWebサービスと同様に、1つまたは複数のコールバック・メソッドを指定し、これらのメソッドに@javax.jws.WebMethodアノテーションを付け、それらがWebサービス操作であることを指定します。ただし、非コールバック・メソッドとは異なり、これらのコールバック・メソッドの実際の実装コードを記述する必要はありません。代わりに、jwsc Antタスクを使ったクライアントWebサービスのコンパイル時に、そのタスクで自動的にコールバック・インタフェースの実装が作成され、それがWebサービスにパッケージ化されます。こうして生成された実装によって、コールバック・メソッドがすべて同じ処理を行う(コールバック・メソッドを呼び出すターゲットWebサービスからクライアントWebサービスにメッセージを返送する)ことが指定されます。

コールバックのプログラミングの詳細および手順は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』のコールバックによるクライアントへのイベントの通知に関する項を参照してください。

属性

表3-12 weblogic.jws.CallbackService JWSアノテーション・タグの属性

名前

説明

データ型

必須?

name

コールバックWebサービスの名前。WSDLファイルの<wsdl:portType>要素に対応しています。

デフォルト値は、JWSファイルのJavaクラスの未修飾名です。

String

いいえ

serviceName

コールバックWebサービスのサービス名。WSDLファイルの<wsdl:service>要素に対応しています。

デフォルト値は、JWSファイルのJavaクラスの未修飾名に、文字列Serviceを付けた値です。

String

いいえ

例

次に、非常に簡単なコールバック・インタフェースの例を示します。結果のコールバックWebサービスは、callbackOperation()というコールバック・メソッドを1つ持ちます。

package examples.webservices.callback;
import weblogic.jws.CallbackService;
import javax.jws.Oneway;
import javax.jws.WebMethod;
@CallbackService
public interface CallbackInterface {
@WebMethod
@Oneway
public void callbackOperation (String msg);
}

weblogic.jws.Context

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット: フィールド

アノテートされたフィールドがWebサービスの実行時コンテキストへのアクセスを提供するように指定します。

クライアント・アプリケーションが、JWSファイルで実装されたWebLogic Webサービスを呼び出すと、WebLogic Serverは、Webサービスが、サービスに関する実行時情報のアクセス、および場合によっては変更に使用できるコンテキストを自動的に作成します。この情報の多くは、現在の会話が終了したか、会話のプロパティの現在の値、実行時の会話のプロパティの変更など、会話に関連しています。コンテキストを介してアクセス可能な情報には、Webサービスの呼出しに使用されたプロトコル(HTTP/SまたはJMS)、SOAPメッセージ・リクエスト内にあったSOAPヘッダーなど、より一般的なものもあります。。アノテーション・フィールドのデータ型はweblogic.wsee.jws.JwsContextです。これは、コンテキストを問い合わせるメソッドを含むWebLogic WebサービスAPIです。

このアノテーションの使用の詳細は、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のWebサービスの実行時情報へのアクセスに関する項を参照してください。

このアノテーションには、属性はありません。

例

以下のJWSファイルのスニペットでは、@Contextアノテーションの使い方を示します。ここでは、ファイルの一部のみを示し、該当するコード箇所は太字になっています。

...
import weblogic.jws.Context;
import weblogic.wsee.jws.JwsContext;

...
public class JwsContextImpl {
@Context
private JwsContext ctx;
@WebMethod()
public String getProtocol() {
...

weblogic.jws.Conversation

説明

ターゲット:メソッド

@Conversationアノテーション付きのメソッドが、2つのWebLogic Webサービスの間の会話、またはスタンドアロンJavaクライアントと会話形式のWebサービスとの間の会話の一部として呼び出すことができるように指定します。

会話形式のWebサービスは通常、3つのメソッドを指定します。各メソッドには、会話の開始、継続、終了の各フェーズに対応する@Conversationアノテーションが付けられています。@Conversationalアノテーションは、Webサービスが会話形式になるようにクラス・レベルで指定する場合、および最大アイドル時間などの会話のプロパティを構成する場合に使用します。

2つのWebサービスの間の会話の場合、クライアント・サービスでは、@ServiceClientアノテーションを使用して、wsdl、サービス名、呼び出された会話サービスのポートを指定します。サービスとスタンドアロン・クライアントとの間の会話の場合、クライアントは、開始メソッド、継続メソッド、および終了メソッドを適切な順序で呼び出し、会話を行います。Webサービスを会話形式にするために、唯一の追加要件として、java.io.Serializableを実装する必要があります。

このアノテーションの使用の詳細および例は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』の会話形式のWebサービスの作成に関する項を参照してください。

属性

表3-13 weblogic.jws.Conversation JWSアノテーション・タグの属性

名前

説明

データ型

必須?

value

アノテーション付きのメソッドが実装する会話のフェーズを指定します。

指定できる値は次のとおりです。

- Phase.START
メソッドが新しい会話を開始するように指定します。このメソッドの呼出しによって、新しい会話IDとコンテキストが作成され、そのアイドルおよび存続期間のタイマーがリセットされます。

- Phase.CONTINUE
メソッドが進行中の会話の一部であることを指定します。このメソッドの呼出しによって、アイドル・タイマーがリセットされます。このメソッドは、開始メソッドと終了メソッドの間に必ず呼び出す必要があります。

- Phase.FINISH
メソッドが進行中の会話を明示的に終了するように指定します。

デフォルト値はPhase.CONTINUEです。

enum

いいえ

例

以下のサンプル・スニペットでは、会話の開始、継続、および終了の各フェーズを指定するために@Conversationアノテーションが付けられた3つのメソッド(start、middle、およびfinish)を含むJWSファイルを示します。

...
public class ConversationalServiceImpl implements Serializable {
@WebMethod
@Conversation (Conversation.Phase.START)
public String start() {
// Java code for starting a conversation goes here
}
@WebMethod
@Conversation (Conversation.Phase.CONTINUE)
public String middle(String message) {
// Java code for continuing a conversation goes here
}
@WebMethod
@Conversation (Conversation.Phase.FINISH)
public String finish(String message ) {
// Java code for finishing a conversation goes here
}
}

weblogic.jws.Conversational

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

JWSファイルが会話形式のWebサービスを実装するように指定します。

Webサービスを会話形式にするために、このアノテーションを使用する必要はありません。@Conversationアノテーションを1つのメソッドに付けるだけで、JWSファイルのすべてのメソッドは自動的に会話形式になります。クラス・レベルの@Conversationalアノテーションは、会話形式の動作の一部を変更する場合や、クラス・レベルでJWSが会話形式であることを明示する場合にのみ使用します。

JWSファイルで@Conversationalアノテーションを使用しない場合でも、デフォルト値がニーズに合っていれば、属性なしでアノテーションを指定できます。ただし、会話で可能な最大アイドル時間、会話の最大継続時間などの値を変更する場合は、それぞれに対応した属性を指定します。

このアノテーションの使用の詳細および例は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』の会話形式のWebサービスの作成に関する項を参照してください。

属性

表3-14 weblogic.jws.Conversational JWSアノテーション・タグの属性

名前

説明

データ型

必須?

maxIdleTime

WebLogic Serverによって終了されるまで、会話がアイドル状態を維持できる時間を指定します。アクティビティは、会話のいずれかのフェーズを実行しているクライアントWebサービスによって定義されます。

有効な値は数値で、以下のいずれかです。

- seconds

- minutes

- hours

- days

- years

たとえば、最大アイドル時間を10分に設定するには、次のようにアノテーションを指定します。

@Conversational(maxIdleTime="10 minutes")

0の値(0 secondsや0 minutesなど)を指定した場合、アイドル状態が原因で会話がタイムアウトすることはありません。

デフォルト値は0 secondsです。

String

いいえ

maxAge

WebLogic Serverによって終了されるまで、会話がアクティブ状態を維持できる時間。

有効な値は数値で、以下のいずれかです。

- seconds

- minutes

- hours

- days

- years

たとえば、最大アイドル時間を3日に設定するには、次のようにアノテーションを指定します。

@Conversational(maxAge="3 days")

デフォルト値は「1 day」です。

String

いいえ

runAsStartUser

既存の会話の継続フェーズと終了フェーズが、会話を開始したユーザーによって実行されるかどうかを指定します。

通常、同じユーザーが会話の開始、継続、および終了メソッドを実行するので、この属性の値を変更しても、何の影響もありません。ただし、singlePrincipal属性をfalseに設定すると、会話を開始したユーザーとは別のユーザーが既存の会話の継続および終了フェーズを実行できるので、その場合、runAsStartUser属性は、メソッドを実際に実行するのは会話を開始したユーザーか、会話の残りのフェーズを実行する別のユーザーかを指定することになります。

有効な値は、trueおよびfalseです。デフォルト値はfalseです。

ブール

いいえ

singlePrincipal

会話を開始したユーザーとは別のユーザーが会話の継続フェーズと終了フェーズを実行できるかどうかを指定します。

通常、同じユーザーが会話のすべてのフェーズを実行します。ただし、この属性をfalseに設定した場合、別のユーザーが既存の会話の会話IDを取得し、会話の残りのフェーズを実行することができます。

有効な値は、trueおよびfalseです。デフォルト値はfalseです。

ブール

いいえ

例

以下のサンプル・スニペットでは、JWSファイルが会話形式のWebサービスを実装するように指定する方法を示します。会話で許可されている最大アイドル時間は10分、会話の最大継続時間はアクティビティに関係なく1日です。会話の継続および終了フェーズは、会話を開始したユーザーとは別のユーザーによって実行されます。各フェーズが発生すると、対応するメソッドが、元のユーザーではなく新しいユーザーとして実行されます。

package examples.webservices.conversation;
...
@Conversational(maxIdleTime="10 minutes",
maxAge="1 day",
runAsStartUser=false,
singlePrincipal=false )
public class ConversationalServiceImpl implements Serializable {
...

weblogic.jws.FileStore

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

会話状態などの内部状態情報の格納に、WebLogic Serverのデフォルト・ファイル・ストアではなく、プログラマ指定のファイル・ストアを使用することを指定します。JWSファイルでこのJWSアノテーションを指定しなかった場合、WebサービスではWebLogic Serverに構成されているデフォルト・ファイル・ストアが使用されます。

信頼性のあるWebサービスの内部状態の格納に対しても、このJWSアノテーションを使用できます。

Webサービスをクラスタにデプロイする場合は、クラスタ内のすべてのサーバーでファイル・ストアが同じ名前で使用できるように、ファイル・ストアの論理名を指定してください。

注意:
このアノテーションはファイル・ストアにのみ適用され、JDBCストアには適用されません。

属性

表3-15 weblogic.jws.FileStore JWSアノテーション・タグの属性

名前

説明

データ型

必須?

storeName

ファイル・ストアの名前を指定します。

String

はい

weblogic.jws.MessageBuffer

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス、メソッド

JWSのどのパブリック・メソッドがバッファされるかを指定します。クラス・レベルで指定した場合、すべてのパブリック・メソッドがバッファされます。一部のメソッドのみバッファする場合、適切なメソッド・レベルでアノテーションを指定します。

クライアントWebサービスが、別のWebLogic Webサービスのバッファ付き操作を呼び出すと、呼び出されたWebサービスをホストしているWebLogic Serverは、呼出しメッセージをJMSキューに入れ、実際の呼出しは、後でWebLogic ServerがJMSキューの先頭からWebサービスの実装にメッセージを配信したときに処理されます。クライアントは、レスポンスを待つ必要がなく、処理の実行を継続できます。このため、バッファリングされた操作(追加の非同期機能なしの場合)は、voidのみを戻すことができ、@Onewayアノテーションが付けられている必要があります。値を戻す操作をバッファリングする場合は、呼出し側のクライアントWebサービスからの非同期のリクエストとレスポンスも使用する必要があります。詳細は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』の非同期のリクエストとレスポンスを使用したWebサービスの呼出しに関する項を参照してください。

バッファリングは、バッファされた一方の操作をもう一方が呼び出す2つのWebサービスの間でのみ機能します。

@MessageBufferの省略可能な属性を使用すると、JMSキューによる、バッファされたWebサービス操作の呼出しが成功するまでの回数、およびその呼出しの間隔を指定できます。

省略可能なクラス・レベルの@BufferQueueアノテーションを使用すると、呼出しメッセージを入れるJMSキューを指定できます。このアノテーションを指定しなかった場合、メッセージは、デフォルトWebサービス・キューweblogic.wsee.DefaultQueueに入れられます。

このアノテーションの使用の詳細および例は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』のバッファ付きWebサービスの作成に関する項を参照してください。

属性

表3-16 weblogic.jws.MessageBuffer JWSアノテーション・タグの属性

名前

説明

データ型

必須?

retryCount

呼び出されたWebLogic ServerインスタンスのJMSキューが、呼出しメッセージをWebサービスの実装に問題なく配信できるまでの再試行回数を指定します。

デフォルト値は3です。

int

いいえ

retryDelay

メッセージ配信の再試行間隔を指定します。再試行間隔は、JMSキューの呼出しメッセージとWebサービスの実装へのメッセージ配信までの間隔。

有効な値は数値で、以下のいずれかです。

- seconds

- minutes

- hours

- days

- years

たとえば、2日後に再試行する場合は、次のように指定します。

@MessageBuffer(retryDelay="2 days")

デフォルト値は5 secondsです。

String

いいえ

例

以下の例では、JWSファイルのコード・スニペットを示します。ここでは、パブリック操作sayHelloNoReturnがバッファ付きで、WebLogic Serverが操作の呼出しを入れているJMSキューがmy.buffere.queueと呼ばれています。呼び出されたWebサービスをホストしているWebLogic Serverインスタンスは、最大再試行回数10回、再試行間隔10秒で、JMSキュー内の呼出しメッセージをWebサービスの実装に配信しようとしています。以下のスニペットでは、関連するJavaコードのみを示します。

package examples.webservices.buffered;
...
@WebService(name="BufferedPortType",
serviceName="BufferedService",
targetNamespace="http://example.org")
@BufferQueue(name="my.buffer.queue")
public class BufferedImpl {
...
@WebMethod()
@MessageBuffer(retryCount=10, retryDelay="10 seconds")
@Oneway()
public void sayHelloNoReturn(String message) {
System.out.println("sayHelloNoReturn: " + message);
}
}

weblogic.jws.Policies

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス、メソッド

@weblogic.jws.Policyアノテーションの配列を指定します。

このアノテーションは、複数のWS-PolicyファイルをJWSファイルのクラスまたはメソッドにアタッチする場合に使用します。アタッチするWS-Policyファイルが1つだけの場合は、@weblogic.jws.Policyを単独で使用できます。

このアノテーションの使用の詳細および例は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』のWebサービスの信頼性のあるメッセージングの使用に関する項および『Oracle WebLogic Server WebLogic Webサービスの保護』のメッセージ・レベルのセキュリティの構成に関する項を参照してください。

このJWSアノテーションには、属性はありません。

例

@Policies({
@Policy(uri="policy:firstPolicy.xml"),
@Policy(uri="policy:secondPolicy.xml")
})

weblogic.jws.Policy

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス、メソッド

デジタル署名、暗号化、またはWebサービスの信頼性のあるメッセージングに関する情報を格納しているWS-PolicyファイルをリクエストまたはレスポンスSOAPメッセージに適用するように指定します。

このアノテーションを単独で使用すると、単一のWS-Policyファイルをクラスまたはメソッドに適用できます。複数のWS-Policyファイルをクラスまたはメソッドに適用する場合は、@weblogic.jws.Policiesアノテーションを使用し、WS-Policyファイルをまとめて適用します。

このアノテーションをクラス・レベルで指定した場合、WS-Policyファイル(1つまたは複数)はWebサービスのあらゆるパブリック操作に適用されます。アノテーションをメソッド・レベルで指定した場合、WS-Policyファイルは、対応する操作にのみ適用されます。

デフォルトでは、WS-Policyファイルはリクエスト(着信)とレスポンス(発信)の両方のSOAPメッセージに適用されます。このデフォルトの動作は、direction属性を使用して変更できます。

デフォルトではまた、指定したWS-Policyファイルは、Webサービス用に生成されてパブリッシュされたWSDLファイルにアタッチされるので、コンシューマは、WebサービスのWS-Policyに関するすべての要件を確認できます。このデフォルトの動作を変更するには、attachToWsdl属性を使用します。

このアノテーションの使用の詳細および例は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』のWebサービスの信頼性のあるメッセージングの使用に関する項および『Oracle WebLogic Server WebLogic Webサービスの保護』のメッセージ・レベルのセキュリティの構成に関する項を参照してください。

属性

表3-17 weblogic.jws.Policy JWSアノテーション・タグの属性

名前

説明

データ型

必須?

uri

WS-Policyファイルを検索する場所を指定します。

Web上のWS-PolicyファイルのURLを指定するには、http:接頭辞を使用します。

WS-PolicyファイルがWebLogic ServerのWebサービス・アーカイブ・ファイルまたは共有可能なJava EEライブラリにパッケージ化されていることを指定する場合は、以下の例のようにpolicy:接頭辞を使用します。

@Policy(uri="policy:MyPolicyFile.xml")

Webサービス・アーカイブ形式でWS-Policyファイルをパブリッシュする場合は、EJB JARファイル(EJB実装のWebサービスの場合)のMETA-INF/policiesディレクトリまたはWARファイル(Java実装のWebサービスの場合)のWEB-INF/policiesディレクトリのどちらかにWS-Policy XMLファイルを格納する必要があります。

ライブラリ内のWS-Policyファイルのパブリッシュについては、『Oracle WebLogic Serverアプリケーションの開発』の共有J2EEライブラリおよびオプション・パッケージの作成に関する項を参照してください。

String

はい

direction

policy:を着信リクエストSOAPメッセージに対して適用するか、発信レスポンスSOAPメッセージに対して適用するか、またはその両方(デフォルト)に対して適用するかを指定します。

この属性の有効な値は以下のとおりです。

- Policy.Direction.both

- Policy.Direction.inbound

- Policy.Direction.outbound

デフォルト値はPolicy.Direction.bothです。

enum

いいえ

attachToWsdl

Webサービスを記述するWSDLにWS-Policyファイルをアタッチするかどうかを指定します。

有効な値は、trueおよびfalseです。デフォルト値はfalseです。

ブール

いいえ

例

@Policy(uri="policy:myPolicy.xml",
attachToWsdl=true,
direction=Policy.Direction.outbound)

weblogic.jws.ReliabilityBuffer

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:メソッド

WebLogic ServerによるJMSキューからWebサービス実装へのメッセージ配信試行回数、およびサーバーが待機すべき再試行間隔など、信頼性のあるWebサービス操作に対する信頼性のあるメッセージングのプロパティを指定します。

注意:
JWSファイルでこのアノテーションを指定する場合は、Webサービス用に信頼性のあるメッセージングを有効にするために、@Policyアノテーションで、Webサービスの信頼性のあるメッセージング・ポリシー・アサーションがあるWS-Policyファイルも指定していることを前提にしています。
@ReliabilityBufferアノテーションを指定しているが、関連付けられているWS-Policyファイルで信頼性のあるメッセージングを有効にしていない場合、WebLogic Serverはこのアノテーションを無視します。

Webサービスに対して信頼性のあるWebサービス・メッセージングを有効にする方法の詳細は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』のWebサービスの信頼性のあるメッセージングの使用に関する項を参照してください。

属性

表3-18 weblogic.jws.ReliabilityBuffer JWSアノテーション・タグの属性

名前

説明

データ型

必須?

retryCount

宛先のWebLogic ServerインスタンスのJMSキューが、信頼性のある操作を呼び出すクライアントからWebサービスの実装にメッセージを配信する際の再試行回数を指定します。

デフォルト値は3です。

int

いいえ

retryDelay

メッセージ配信の再試行間隔を指定します。再試行間隔は、JMSキューにあるクライアントのリクエスト・メッセージとWebサービスの実装へのメッセージ配信までの間隔。

有効な値は数値で、以下のいずれかです。

- seconds

- minutes

- hours

- days

- years

たとえば、2日後に再試行する場合は、次のように指定します。

@ReliabilityBuffer(retryDelay="2 days")

デフォルト値は5 secondsです。

String

いいえ

例

以下のサンプル・スニペットでは、メソッド・レベルで信頼性のある操作のデフォルトの再試行回数と再試行間隔を変更する@ReliabilityBufferアノテーションの使い方を示します。ここでは、関連するJavaコードのみを示します。

package examples.webservices.reliable;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.Oneway;

...
import weblogic.jws.ReliabilityBuffer;
import weblogic.jws.Policy;
@WebService(name="ReliableHelloWorldPortType",
serviceName="ReliableHelloWorldService")

...
@Policy(uri="ReliableHelloWorldPolicy.xml",
direction=Policy.Direction.inbound,
attachToWsdl=true)
public class ReliableHelloWorldImpl {
@WebMethod()
@Oneway()
@ReliabilityBuffer(retryCount=10, retryDelay="10 seconds")
public void helloWorld(String input) {
System.out.println(" Hello World " + input);
}
}

weblogic.jws.ReliabilityErrorHandler

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:メソッド

クライアントWebサービスが信頼性のあるWebサービスを呼び出したが、信頼性のあるWebサービスが実際にそのメッセージを受け取ったという確認応答をそのクライアントが受信しなかった場合に発生するエラーを処理するメソッドを指定します。

このアノテーションは、Webサービスの信頼性のあるメッセージング機能を実装する場合にのみ関係します。アノテーションは、信頼性のあるWebサービスを呼び出すクライアント側のWebサービスで指定します。

@ReliabilityErrorHandlerアノテーションを付けるメソッドでは、データ型weblogic.wsee.reliability.ReliabilityErrorContextのパラメータを1つ取ります。このコンテキストを使うと、エラーの原因(エラーの原因となった操作、ターゲットWebサービス、フォルトなど)に関する詳細な情報を取得できます。メソッドは、voidを返す必要があります。

@ReliabilityErrorHandlerアノテーションの単一の属性では、クライアントWebサービスが呼び出している信頼性のあるWebサービスのスタブ情報を注入した変数を指定します。この情報は、@weblogic.jws.ServiceClientアノテーションを使って変数に注入します。

属性

表3-19 weblogic.jws.ReliabilityErrorHandler JWSアノテーション・タグの属性

名前

説明

データ型

必須?

target

このメソッドで信頼性失敗を処理するターゲットのスタブ名を指定します。

String

はい

例

信頼性のあるWebサービスを呼び出すクライアントWebサービスの次のコードでは、@ReliabilityErrorHandlerアノテーションの使用方法を示します。ここでは、コードの一部のみが示され、このアノテーションに関連するコードについては太字で示されています。

package examples.webservices.reliable;
...
import weblogic.jws.ServiceClient;
import weblogic.jws.ReliabilityErrorHandler;
import examples.webservices.reliable.ReliableHelloWorldPortType;
import weblogic.wsee.reliability.ReliabilityErrorContext;
import weblogic.wsee.reliability.ReliableDeliveryException;
@WebService(name="ReliableClientPortType",
...
public class ReliableClientImpl
{
@ServiceClient(
wsdlLocation="http://localhost:7001/ReliableHelloWorld/ReliableHelloWorld?WSDL",
serviceName="ReliableHelloWorldService",
portName="ReliableHelloWorldServicePort")
private ReliableHelloWorldPortType port;
@WebMethod
public void callHelloWorld(String input, String serviceUrl)
throws RemoteException {
...
}
@ReliabilityErrorHandler(target="port")
public void onReliableMessageDeliveryError(ReliabilityErrorContext ctx) {
ReliableDeliveryException fault = ctx.getFault();
String message = null;
if (fault != null) {
message = ctx.getFault().getMessage();
}
String operation = ctx.getOperationName();
System.out.println("Reliable operation " + operation + " may have not invoked. The error message is " + message);
}
}

上の例では、port変数はReliableHelloWorldService Webサービスに対応するスタブで注入されており、クライアントWebサービスの特定の場所で、このスタブの操作が呼び出されると見なされます。onReliableMessageDeliveryErrorメソッドは、@ReliabilityErrorHandlerアノテーションが付けられ、portスタブとリンクされているため、信頼性のあるWebサービスの呼出しにおいて障害が発生した場合、このメソッドが呼び出されます。信頼性のあるエラー処理メソッドでは、ReliabilityErrorContextオブジェクトを使用して、このエラーの原因の詳細を取得します。

weblogic.jws.ServiceClient

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット: フィールド

JWSファイルのアノテーション付き変数が、以下の機能を使用するときに、別のWebLogic Webサービスを呼び出すスタブであることを指定します。

- Webサービスの信頼性のあるメッセージング

- 非同期のリクエスト/レスポンス

- 会話

信頼性のあるメッセージング機能および非同期のリクエストとレスポンス機能は、2つのWebサービスの間でのみ使用します。つまり、たとえば、スタンドアロン・クライアントからではなく、別のWebサービスからのみ信頼性のあるWebサービス操作を呼び出すことができます。信頼性のあるメッセージングの場合は、http://docs.oasis-open.org/ws-rx/wsrm/200702/wsrm-1.1-spec-os-01.pdfにあるWS-ReliableMessaging仕様を実装された任意の2つのアプリケーション・サーバー間で機能します。非同期のリクエストとレスポンス機能は、2つのWebLogic Serverインスタンス間でのみ機能します。

クライアントWebサービスの場合、どの変数が、@ServiceClient属性で記述したWebサービスのポートのタイプかを指定するには、@ServiceClientアノテーションを使用します。クライアントWebサービスを格納するエンタープライズ・アプリケーションも、呼び出しているWebサービスのスタブを含んでいる必要があります。このスタブは、clientgen Antタスクで生成します。

@ServiceClientアノテーションの使用の詳細および例は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』を参照してください。

属性

表3-20 weblogic.jws.ServiceClient JWSアノテーション・タグの属性

名前

説明

データ型

必須?

serviceName

呼び出すWebサービスの名前を指定します。呼び出されたWebサービスのWSDLにある<service>要素のname属性に対応します。

JWSファイルを使用して、呼び出されたWebサービスを実装した場合、この属性は、そのWebサービスの@WebService JWSアノテーションのserviceName属性に対応します。

String

はい

portName

呼び出すWebサービスのポート名を指定します。<service>要素の子要素<port>のname属性に対応します。

JWSファイルを使用して、呼び出されたWebサービスを実装した場合、この属性は、そのWebサービスの@WLHttpTransport JWSアノテーションのportName属性に対応します。

この属性を指定しなかった場合、WSDLの<service>要素には、@ServiceClientが使用する<port>子要素が1つだけ含まれているものと見なされます。複数のポートがある場合、クライアントWebサービスは実行時例外を返します。

String

いいえ

wsdlLocation

呼び出すWebサービスを記述するWSDLファイルを指定します。

この属性を指定しなかった場合、クライアントWebサービスが使用するWSDLファイルは、呼び出されるWebサービスのService実装を作成する際にclientgen Antタスクが使用したものと同じWSDLファイルです。

String

いいえ

endpointAddress

呼び出すWebサービスのエンドポイント・アドレスを指定します。

この属性を指定しなかった場合、クライアントWebサービスは、WSDLファイルで指定したエンドポイント・アドレスを使用します。

String

いいえ

例

以下のJWSファイルの抜粋では、クライアントWebサービスで@ServiceClientアノテーションを使用し、呼び出されるWebサービス(WSDLがhttp://localhost:7001/ReliableHelloWorld/ReliableHelloWorld?WSDLというURL上にあるReliableHelloWorldService)のスタブでフィールド(port)にアノテーションを付ける方法を示します。ここでは、関連する部分のみを示します。

package examples.webservices.reliable;
import javax.jws.WebService;
...
import weblogic.jws.ServiceClient;
import examples.webservices.reliable.ReliableHelloWorldPortType;
@WebService(...
public class ReliableClientImpl
{
@ServiceClient(
wsdlLocation="http://localhost:7001/ReliableHelloWorld/ReliableHelloWorld?WSDL",
serviceName="ReliableHelloWorldService",
portName="ReliableHelloWorldServicePort")
private ReliableHelloWorldPortType port;
@WebMethod
public void callHelloWorld(String input, String serviceUrl)
throws RemoteException {
port.helloWorld(input);
System.out.println(" Invoked the ReliableHelloWorld.helloWorld operation reliably." );
}
}

weblogic.jws.StreamAttachments

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

WebLogic Webサービス・ランタイムで、Webサービスのすべてのメソッド・パラメータを読み込む際にStreaming APIを使用するように指定します。これによって、特に画像など、大きなパラメータの場合にWebサービス操作の呼出しのパフォーマンスが向上します。

同じWebサービスで次の機能も使用している場合、このアノテーションは使用できません。

- 会話

- 信頼性のあるメッセージング

- JMSトランスポート

- クライアント・アプリケーションと呼出し対象のWebサービスとの間のプロキシ・サーバー

@StreamAttachmentsアノテーションには、属性はありません。

例

次に、@StreamAttachmentsアノテーションを指定する簡単なJWSファイルを示します。単一のメソッドechoAttachment()はDataHandlerパラメータを取り、Webサービス操作を呼び出したクライアント・アプリケーションにエコー・バックします。WebLogic Webサービス・ランタイムでは、DataHandlerの内容を読み込む際にストリーミングが使用されます。

package examples.webservices.stream_attach;
import javax.jws.WebMethod;
import javax.jws.WebService;
import weblogic.jws.WLHttpTransport;
import weblogic.jws.StreamAttachments;
import javax.activation.DataHandler;
import java.rmi.RemoteException;
@WebService(name="StreamAttachPortType",
serviceName="StreamAttachService",
targetNamespace="http://example.org")
@WLHttpTransport(contextPath="stream_attach",
serviceUri="StreamAttachService",
portName="StreamAttachServicePort")
@StreamAttachments
/**
* Example of stream attachments
*/
public class StreamAttachImpl {
@WebMethod()
public DataHandler echoAttachment(DataHandler dh) throws RemoteException {
return dh;
}
}

weblogic.jws.Transactional

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス、メソッド

アノテーション付きの操作、またはアノテーションがクラス・レベルで指定されている場合はJWSファイルのすべての操作がトランザクション内で実行されるかどうかを指定します。デフォルトでは、操作はトランザクションでは実行されません。

属性

表3-21 weblogic.jws.Transactional JWSアノテーション・タグの属性

名前

説明

データ型

必須?

value

特定の操作(メソッド・レベルで使用する場合)またはWebサービスのすべての操作(クラス・レベルで指定されている場合)がトランザクション内で実行されるかどうかを指定します。

有効な値は、trueおよびfalseです。デフォルト値はfalseです。

ブール

いいえ

timeout

現在のトランザクションにおけるタイムアウト値(単位は秒)を指定します。

この属性のデフォルト値は30秒です。

int

いいえ

例

以下の例では、@Transactionalアノテーションを使って、Webサービス操作がトランザクションの一部として実行されるように指定する方法を示します。

package examples.webservices.transactional;
import javax.jws.WebMethod;
import javax.jws.WebService;
import weblogic.jws.WLHttpTransport;
import weblogic.jws.Transactional;
@WebService(name="TransactionPojoPortType",
serviceName="TransactionPojoService",
targetNamespace="http://example.org")
@WLHttpTransport(contextPath="transactionsPojo",
serviceUri="TransactionPojoService",
portName="TransactionPojoPort")
/**
* This JWS file forms the basis of simple WebLogic
* Web Service with a single operation: sayHello.  The operation executes
* as part of a transaction.
*/
public class TransactionPojoImpl {
@WebMethod()
@Transactional(value=true)
public String sayHello(String message) {
System.out.println("sayHello:" + message);
return "Here is the message: '" + message + "'";
}
}

weblogic.jws.Types

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:メソッド、パラメータ

戻り値またはパラメータの代替データ型の完全修飾Javaクラス名のカンマ区切りリストを指定します。代替データ型は、メソッド・シグネチャで指定されたデータ型を拡張する必要があります。これに当てはまらない場合、JWSファイルをWebサービスにコンパイルする際にjwsc Antタスクは検証エラーを返します。

たとえば、Address基本データ型を作成してから、このベース・タイプを拡張するUSAAddressおよびCAAddressを作成しているものと仮定します。メソッド・シグネチャで、この型がAddressパラメータを取ることが指定されている場合、このパラメータに@Typesアノテーションを付け、パブリック操作でも、基本Addressデータ型の他に、パラメータとしてUSAAddressおよびCAAddressを取るように指定できます。

このアノテーションを使うと、java.util.Collectionまたはjava.util.Listなど、コレクション・データ型の戻り値またはパラメータに格納可能なデータ型を制限することもできます。許容される格納データ型を制限することによって、生成されるWSDLは明確で一義的となり、クライアント・アプリケーションがWebサービス操作を呼び出す際、Webサービス・ランタイムはパラメータの適格確認処理を効率よく実行できます。

このアノテーションをメソッド・レベルで指定すると、適用対象は戻り値に限定されます。アノテーションをパラメータに適用する場合、各関連パラメータについて、パラメータ・レベルで指定する必要があります。

属性

表3-22 weblogic.jws.Types JWSアノテーション・タグの属性

名前

説明

データ型

必須?

value

コレクション・タイプのパラメータまたは戻り値に格納可能なデータ型、または元のデータ型のかわりに使用できる代替データ型の完全修飾クラス名のカンマ区切りリストです。

String[]

はい

例

次の例では、@Typesアノテーションを使用する簡単なJWSファイルを示します。関連するJavaコードは太字で示しています。

package examples.webservices.types;
import javax.jws.WebMethod;
import javax.jws.WebService;
import weblogic.jws.WLHttpTransport;
import weblogic.jws.Types;
import examples.webservices.types.BasicStruct;
@WebService(serviceName="TypesService",
name="TypesPortType",
targetNamespace="http://example.org")
@WLHttpTransport(contextPath="types",
serviceUri="TypesService",
portName="TypesServicePort")
public class TypesImpl {
@WebMethod()
@Types({"examples.webservices.types.ExtendedStruct"})
public BasicStruct echoStruct(
@Types({"examples.webservices.types.ExtendedStruct"}) BasicStruct struct)
{
System.out.println("echoStruct called");
return struct;
}
}

上の例では、echoStruct()メソッドのシグネチャにおいて、パラメータおよび戻り値の両方としてBasicStruct値を取ることが示されています。ただし、メソッドおよびstructパラメータはともに@Typesアノテーションが付けられているため、echoStruct操作を呼び出すクライアント・アプリケーションは、データ型ExtendedStructのパラメータも渡すことができます。この場合、操作もExtendedStruct値を返します。ここでは、ExtendedStructがBasicStructを拡張するものと見なされています。

weblogic.jws.WildcardBinding

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

javax.xml.soap.SOAPElementまたはorg.apache.xmlbeans.XmlObjectなどのワイルドカード・クラスがバインドする先のXMLスキーマ・データ型を指定します。デフォルトでは、これらのJavaデータ型は<xsd:any> XMLスキーマ・データ型にバインドされます。このクラス・レベルのアノテーションを使用すると、ワイルドカード・クラスをかわりに<xsd:anyType>にバインドするように指定できます。

属性

表3-23 weblogic.jws.WildcardBinding JWSアノテーション・タグの属性

名前

説明

データ型

必須?

className

このバインドが適用されるワイルドカード・クラスの完全修飾名を指定します。一般的な値はjavax.xml.soap.SOAPElementおよびorg.apache.xmlbeans.XmlObjectです。

String

はい

binding

ワイルドカード・クラスがバインドする先のXMLスキーマ・データ型を指定します。

以下のいずれかの値を指定可能です。

- WildcardParticle.ANY

- WildcardParticle.ANYTYPE

enum

はい

例

次に、@WildcardBindingアノテーションを使って、Apache XMLBeansデータ型のXMLObjectが、このWebサービスの<xsd:any> XMLスキーマ・データ型にバインドされるように指定する例を示します。

@WildcardBindings({
@WildcardBinding(className="org.apache.xmlbeans.XmlObject",
binding=WildcardParticle.ANY),
@WildcardBinding(className="org.apache.xmlbeans.XmlObject[]",
binding=WildcardParticle.ANY)})
public class SimpleImpl {
...

weblogic.jws.WildcardBindings

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

@weblogic.jws.WildcardBindingアノテーションの配列を指定します。

このJWSアノテーションには、属性はありません。

例については、weblogic.jws.WildcardBindingを参照してください。

weblogic.jws.WLHttpTransport

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

生成されたWSDLのポート名に加え、HTTPトランスポート形式でWebサービスを呼び出すために使用するコンテキスト・パスおよびURLのサービスURIセクションを指定します。

このアノテーションは、JWSファイル内で最大で一度だけ指定できます。

属性

表3-24 weblogic.jws.WLHttpTransport JWSアノテーション・タグの属性

名前

説明

データ型

必須?

contextPath

Webサービスのコンテキスト・パス。この値は、Webサービスを呼び出すURL内で使用します。

たとえば、Webサービスのコンテキスト・パスをfinancialに設定した場合、デプロイされるWebLogic WebサービスのWSDLで指定可能なURLは次の形式になります。

http://hostname:7001/financial/GetQuote?WSDL

この属性のデフォルト値はJWSファイルの名前(拡張子なし)です。たとえば、JWSファイルがHelloWorldImpl.javaの場合、そのcontextPathのデフォルト値はHelloWorldImplになります。

String

いいえ

serviceUri

URLのWebサービスURI部分。この値は、Webサービスを呼び出すURL内で使用します。

たとえば、この属性をGetQuoteに設定した場合、デプロイされるサービスのWSDLで指定可能なURLは以下の形式になります。

http://hostname:7001/financial/GetQuote?WSDL

この属性のデフォルト値はJWSファイルの名前(拡張子なし)です。たとえば、JWSファイルがHelloWorldImpl.javaの場合、そのserviceUriのデフォルト値はHelloWorldImplになります。

String

いいえ

portName

生成されたWSDLのポートの名前。この属性は、WSDLの<port>要素のname属性に対応しています。

この属性のデフォルト値は、JWSファイルの@javax.jws.WebServiceアノテーションに基づきます。つまり、デフォルトのportNameは、@WebServiceアノテーションのname属性の値にSoapPortというテキストを付け加えた形になります。たとえば、@WebService.nameがMyServiceに設定されている場合、デフォルトのportNameはMyServiceSoapPortとなります。

String

いいえ

例

@WLHttpTransport(contextPath="complex",
serviceUri="ComplexService",
portName="ComplexServicePort")

weblogic.jws.WLHttpsTransport

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

注意:
@weblogic.jws.WLHttpsTransportアノテーションは、WebLogic Server 9.2で非推奨になりました。代わりに、@weblogic.jws.WLHttpTransportアノテーションを使用してください。これはHTTPおよびHTTPSプロトコルを両方ともサポートするようになったためです。クライアント・アプリケーションにHTTPSプロトコルのみを使用してWebサービスにアクセスさせるには、JWSファイルで@weblogic.jws.security.UserDataConstraint JWSアノテーションを指定する必要があります。

生成されたWSDLのポート名に加え、HTTPSトランスポート形式でWebサービスを呼び出すために使用するコンテキスト・パスおよびURLのサービスURIセクションを指定します。

このアノテーションは、JWSファイル内で最大で一度だけ指定できます。

属性

表3-25 weblogic.jws.WLHttpsTransport JWSアノテーション・タグの属性

名前

説明

データ型

必須?

contextPath

Webサービスのコンテキスト・パス。この値は、Webサービスを呼び出すURL内で使用します。

たとえば、Webサービスのコンテキスト・パスをfinancialに設定した場合、デプロイされるWebLogic WebサービスのWSDLで指定可能なURLは次の形式になります。

https://hostname:7001/financial/GetQuote?WSDL

この属性のデフォルト値はJWSファイルの名前(拡張子なし)です。たとえば、JWSファイルがHelloWorldImpl.javaの場合、そのcontextPathのデフォルト値はHelloWorldImplになります。

String

いいえ

serviceUri

URLのWebサービスURI部分。この値は、Webサービスを呼び出すURL内で使用します。

たとえば、この属性をGetQuoteに設定した場合、デプロイされるサービスのWSDLで指定可能なURLは以下の形式になります。

https://hostname:7001/financial/GetQuote?WSDL

この属性のデフォルト値はJWSファイルの名前(拡張子なし)です。たとえば、JWSファイルがHelloWorldImpl.javaの場合、そのserviceUriのデフォルト値はHelloWorldImplになります。

String

いいえ

portName

生成されたWSDLのポートの名前。この属性は、WSDLの<port>要素のname属性に対応しています。

この属性のデフォルト値は、JWSファイルの@javax.jws.WebServiceアノテーションに基づきます。つまり、デフォルトのportNameは、@WebServiceアノテーションのname属性の値にSoapPortというテキストを付け加えた形になります。たとえば、@WebService.nameがMyServiceに設定されている場合、デフォルトのportNameはMyServiceSoapPortとなります。

String

いいえ

例

@WLHttpsTransport(portName="helloSecurePort",
contextPath="secure",
serviceUri="SimpleSecureBean")

weblogic.jws.WLJmsTransport

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

生成されたWSDLのポート名に加え、JMSトランスポート形式でWebサービスを呼び出すために使用するコンテキスト・パスおよびURLのサービスURIセクションを指定します。WebLogic Serverが操作の呼出しのSOAPリクエスト・メッセージを入れるJMSキューを指定する場合にも、このアノテーションを使用します。

このアノテーションは、JWSファイル内で最大で一度だけ指定できます。

属性

表3-26 weblogic.jws.WLJmsTransport JWSアノテーション・タグの属性

名前

説明

データ型

必須?

contextPath

Webサービスのコンテキスト・パス(コンテキスト・ルート)。この値は、Webサービスを呼び出すURL内で使用します。

String

いいえ

serviceUri

クライアント・アプリケーションがWebサービスの呼出しに使用するURLのWebサービスURI部分。

String

いいえ

queue

JMSトランスポート用に構成済のJMSキューのJNDI名。JMSトランスポートの使用の詳細は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』の接続プロトコルとしてのJMSトランスポートの使用に関する項を参照してください。

この属性を指定しない場合のデフォルト値はweblogic.wsee.DefaultQueueです。その場合でも、Webサービスのデプロイ先となるWebLogic Serverインスタンスで、このJMSキューを作成する必要があります。

String

いいえ

portName

生成されたWSDLのポートの名前。この属性は、WSDLの<port>要素のname属性に対応しています。

この属性を指定しない場合、jwscは、Webサービスを実装しているクラスの名前を基にデフォルト名を生成します。

String

いいえ

connectionFactory

JMSトランスポート用に構成済のJMS接続ファクトリのJNDI名。JMSトランスポートの使用の詳細は、『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』の接続プロトコルとしてのJMSトランスポートの使用に関する項を参照してください。

String

はい

例

以下の例では、JMSトランスポートを使用して呼び出されるWebサービスがJWSファイルで実装されるように指定する方法を示します。WebLogic Serverが、サービス操作の呼出しにあるSOAPメッセージ・リクエストを入れるJMSキューはJMSTransportQueueです。ここでは、このJMSキューはWebLogic Server用にすでに構成されていることを前提としています。

WLJmsTransport(contextPath="transports",
serviceUri="JMSTransport",
queue="JMSTransportQueue",
portName="JMSTransportServicePort")

weblogic.jws.WSDL

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

デプロイされたWebLogic WebサービスのWSDLを公開するかどうかを指定します。

デフォルトでは、WSDLは次のURLで公開されます。

http://[host]:[port]/[contextPath]/[serviceUri]?WSDL

説明:

- host - WebLogic Serverが動作しているコンピュータの名前。

- port - WebLogic Serverがリスニングしているポート番号(デフォルト値は7001)。

- contextPathは、Webサービスを実装するJWSファイルの@WLHttpTransport JWSアノテーションで指定されているcontextPath属性の値、serviceUriはserviceUri属性の値を指します。

たとえば、次の@WLHttpTransportアノテーションを使用しているとします。

@WLHttpTransport(portName="helloPort",
contextPath="hello",
serviceUri="SimpleImpl")

Webサービスがarielというホストのデフォルトのポート番号で実行されているとすると、そのWebサービスのWSDLを表示するURLは次のとおりです。

http://ariel:7001/hello/SimpleImpl?WSDL

属性

表3-27 weblogic.jws.WSDL JWSアノテーション・タグの属性

名前

説明

データ型

必須?

exposed

デプロイされたWebサービスのWSDLを公開するかどうかを指定します。

有効な値は、trueおよびfalseです。デフォルト値はtrueで、デフォルトではWSDLが公開されることを意味します。

ブール

いいえ

例

以下の@WSDLアノテーションの使用例では、デプロイされるWebサービスのWSDLが公開されないように指定する方法を示します。ここでは、関連するJavaコードのみを示します。

package examples.webservices;
import weblogic.jws.WSDL;
@WebService(name="WsdlAnnotationPortType",
serviceName="WsdlAnnotationService",
targetNamespace="http://example.org")
@WSDL(exposed=false)
public class WsdlAnnotationImpl {
...
}

weblogic.jws.security.CallbackRolesAllowed

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:メソッド、フィールド

Webサービスのコールバック・メソッドを呼び出す許可を与えられたロールをリストする@SecurityRole JWSアノテーションの配列を指定します。未指定のロールにマップされたユーザー、またはロールにマップされていないユーザーは、コールバック・メソッドの呼出しを許可されません。

このアノテーションをフィールド・レベルで使用した場合、指定したロールは、Webサービスのすべてのコールバック操作の呼出しを許可されます。このアノテーションをメソッド・レベルで使用した場合、指定したロールは、コールバック・メソッドのみの呼出しを許可されます。両方のレベルで指定し、競合がある場合、メソッド値がフィールド値をオーバーライドします。

属性

表3-28 weblogic.jws.security.CallbackRolesAllowed JWSアノテーション・タグの属性

名前

説明

データ型

必須?

value

コールバック・メソッドの呼出しを許可されたロールをリストする@ weblogic.jws.security.RolesAllowedの配列。

String[]

はい

例

次に、メソッド・レベルで@CallbackRolesAllowedアノテーションを使って、ロールengineerがコールバック・メソッドの呼出しを許可されるように指定する例を示します。

@CallbackMethod(target="port", operation="callbackOperation")
@CallbackRolesAllowed(@SecurityRole(role="engineer", mapToPrincipals="shackell"))
public void callbackHandler(String msg) {
System.out.println (msg);
}

weblogic.jws.security.RolesAllowed

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス、メソッド

Webサービスの基本認証を有効にするかどうかを指定します。具体的には、これはWebサービスを呼び出す許可を与えられたロールのリストを記述した@SecurityRole JWSアノテーションの配列を指定します。未指定のロールにマップされたユーザー、またはロールにマップされていないユーザーは、Webサービスの呼出しを許可されません。

このアノテーションをクラス・レベルで使用した場合、指定したロールは、Webサービスのすべての操作の呼出しを許可されます。特定の操作群のみに対してロールを指定するには、アノテーションを操作レベルで指定します。

属性

表3-29 weblogic.jws.security.RolesAllowed JWSアノテーション・タグの属性

名前

説明

データ型

必須?

value

Webサービス・メソッドの呼出しを許可されたロールをリストする@ weblogic.jws.security.RolesAllowedの配列。

String[]

はい

例

package examples.webservices.security_roles;
...
import weblogic.jws.security.RolesAllowed;
import weblogic.jws.security.SecurityRole;
@WebService(name="SecurityRolesPortType",
serviceName="SecurityRolesService",
targetNamespace="http://example.org")
@RolesAllowed (  {
@SecurityRole (role="manager",
mapToPrincipals={ "juliet","amanda" }),
@SecurityRole (role="vp")
} )
public class SecurityRolesImpl {
...

この例では、ロールmanagerおよびvpのみがWebサービスの呼出しを許可されています。Webサービスのコンテキスト内で、ユーザーjulietおよびamandaにはロールmanagerが割り当てられます。しかしロールvpには、ユーザーが外部でこのロールにマップされたことを示唆するmapToPrincipals属性が含まれていません。ここでは、2人のユーザーjulietおよびamandaがWebLogic Serverセキュリティ・レルムにすでに追加されていることが前提となっています。

weblogic.jws.security.RolesReferenced

説明

ターゲット:クラス

Webサービスの呼出しが許可されている実際のロールを参照する、ロール名のリストを指定します。具体的には、@SecurityRoleRef JWSアノテーションの配列を指定します。各アノテーションには、参照されるロール名と、@SecurityRoleアノテーションで定義される実際のロールの間のリンクが記述されています。

このJWSアノテーションには、属性はありません。

例

package examples.webservices.security_roles;
...
import weblogic.jws.security.RolesAllowed;
import weblogic.jws.security.SecurityRole;
import weblogic.jws.security.RolesReferenced;
import weblogic.jws.security.SecurityRoleRef;
@WebService(name="SecurityRolesPortType",
serviceName="SecurityRolesService",
targetNamespace="http://example.org")
@RolesAllowed (  {
@SecurityRole (role="manager",
mapToPrincipals={ "juliet","amanda" }),
@SecurityRole (role="vp")
} )
@RolesReferenced (
@SecurityRoleRef (role="mgr", link="manager")
)
public class SecurityRolesImpl {
...

この例では、ロールmgrはWebサービスの呼出しを許可されているロールmanagerにリンクされています。つまり、mgrのロールに割り当てられたユーザーはすべて、Webサービスの呼出しを許可されているということです。

weblogic.jws.security.RunAs

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

WebLogic Server内のWebサービスを実際に実行するロールおよびユーザーIDを指定します。

たとえば、@RunAsアノテーションが、roleAロールとuserAプリンシパルを指定すると仮定します。これは、WebサービスがuserB (roleBにマップされている)によって呼び出された場合でも、関連の操作は内部で実際にはuserAとして実行されているということです。

属性

表3-30 weblogic.jws.security.RunAs JWSアノテーションの属性

名前

説明

データ型

必須?

role

Webサービスが実行されるロールを指定します。

String

はい

mapToPrincipal

ロールにマップするプリンシパル・ユーザーを指定します。

通常は管理コンソールを使用して、指定されたプリンシパル(ユーザー)を有効なWebLogic Serverユーザーとして構成済であることが前提となっています。詳細は、Oracle WebLogic Server管理コンソール・ヘルプのユーザーの作成に関する項を参照してください。

String

はい

例

package examples.webservices.security_roles;
import weblogic.jws.security.RunAs;
...
@WebService(name="SecurityRunAsPortType",
serviceName="SecurityRunAsService",
targetNamespace="http://example.org")
@RunAs (role="manager", mapToPrincipal="juliet")
public class SecurityRunAsImpl {
...

この例では、どのユーザーによって呼び出されたかに関係なく、Webサービスを常にロールmanagerにマップされているユーザーjulietとして実行するということを指定する方法を示します。

weblogic.jws.security.SecurityRole

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス、メソッド

Webサービスの呼出しを許可されているロールの名前を指定します。このアノテーションは、JWSファイルの中で常に@RolesAllowed配列のメンバーとして指定されます。

クライアント・アプリケーションは保護されたWebサービスを呼び出す際、基本認証の一部としてユーザーおよびパスワードを指定します。管理者は管理コンソールを使用してユーザーを有効なWebLogic Serverユーザーとして構成済であることが前提となっています。詳細は、『Oracle WebLogic Server管理コンソール・ヘルプ』のユーザーの作成に関する項を参照してください。

Webサービスを呼び出すユーザーは、関連のロールにもマップされている必要があります。このタスクは、次の2つの方法のいずれかによって実行できます。

- 管理コンソールでユーザーをロールにマップします。この場合、@SecurityRoleアノテーションのmapToPrincipals属性は指定しません。詳細は、Oracle WebLogic Server管理コンソール・ヘルプのロールへのユーザーの追加に関する項を参照してください。

- mapToPrincipals属性を使用して1人以上のユーザーを指定することで、Webサービスのコンテキスト内でのみユーザーをロールにマップします。

複数のロールがWebサービスの呼出しを許可されていることを指定するには、複数の@SecurityRoleアノテーションを@RolesAllowedアノテーション内に含めます。

属性

表3-31 weblogic.jws.security.SecurityRole JWSアノテーションの属性

名前

説明

データ型

必須?

role

Webサービスの呼出しを許可されているロールの名前。

String

はい

mapToPrincipals

ロールにマップするユーザー名の配列。

この属性を指定しない場合は、通常管理コンソールを使用してユーザーとロールの間のマッピングを外部で定義済みであると想定されます。

String[]

いいえ

例

package examples.webservices.security_roles;
...
import weblogic.jws.security.RolesAllowed;
import weblogic.jws.security.SecurityRole;
@WebService(name="SecurityRolesPortType",
serviceName="SecurityRolesService",
targetNamespace="http://example.org")
@RolesAllowed (  {
@SecurityRole (role="manager",
mapToPrincipals={ "juliet","amanda" }),
@SecurityRole (role="vp")
} )
public class SecurityRolesImpl {
...

この例では、ロールmanagerおよびvpのみがWebサービスの呼出しを許可されています。Webサービスのコンテキスト内で、ユーザーjulietおよびamandaにはロールmanagerが割り当てられます。しかしロールvpには、ユーザーが外部でこのロールにマップされたことを示唆するmapToPrincipals属性が含まれていません。ここでは、2人のユーザーjulietおよびamandaがWebLogic Serverセキュリティ・レルムにすでに追加されていることが前提となっています。

weblogic.jws.security.SecurityRoleRef

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

Webサービスの呼出しを許可されている、指定済みのロールにリンクするロール名参照を指定します。

ロール参照にマップされたユーザーは、参照されたロールがWebサービスの@RolesAllowedアノテーションで指定されている限り、Webサービスを呼び出すことができます。

属性

表3-32 weblogic.jws.security.SecurityRoleRef JWSアノテーションの属性

名前

説明

データ型

必須?

role

ロール参照の名前。

String

はい

link

Webサービスの呼出しを許可されている指定済みのロールの名前。この属性の値は、同じJWSファイルで指定されている@SecurityRole annotationのrole属性の値に対応します。

String

はい

例

package examples.webservices.security_roles;
...
import weblogic.jws.security.RolesAllowed;
import weblogic.jws.security.SecurityRole;
import weblogic.jws.security.RolesReferenced;
import weblogic.jws.security.SecurityRoleRef;
@WebService(name="SecurityRolesPortType",
serviceName="SecurityRolesService",
targetNamespace="http://example.org")
@RolesAllowed (  {
@SecurityRole (role="manager",
mapToPrincipals={ "juliet","amanda" }),
@SecurityRole (role="vp")
} )
@RolesReferenced (
@SecurityRoleRef (role="mgr", link="manager")
)
public class SecurityRolesImpl {
...

この例では、ロールmgrはWebサービスの呼出しを許可されているロールmanagerにリンクされています。つまり、mgrのロールに割り当てられたユーザーはすべて、Webサービスの呼出しを許可されているということです。

weblogic.jws.security.UserDataConstraint

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

クライアントがWebサービスを呼び出す際に、HTTPSトランスポートの使用が必要であるかどうかを指定します。

WebLogic Serverは、このアノテーションのtransport属性が、Webサービスを実装するJWSファイル内でTransport.INTEGRALとTransport.CONFIDENTIALのうちのいずれかに設定されていると、クライアントとWebサービスの間にSecure Sockets Layer (SSL)接続を確立します。

このアノテーションをJWSファイル内で指定した場合は、weblogic.jws.WLHttpTransportアノテーション(または、jwsc Antタスクの<WLHttpTransport>要素)も指定して、HTTPSバインディングがjwsc AntタスクによってWSDLファイル内に確実に生成されるようにする必要があります。

属性

表3-33 weblogic.jws.security.UserDataConstraint JWSアノテーションの属性

名前

説明

データ型

必須?

transport

クライアントがWebサービスを呼び出す際に、HTTPSトランスポートの使用が必要であるかどうかを指定します。

有効な値は以下のとおりです。

- Transport.NONE - Webサービスがトランスポートの保証を必要としていないことを指定します。

- Transport.INTEGRAL - Webサービスにおいて、転送中にデータが変更されない方法でクライアントとWebサービス間のデータ送信を行う必要があることを指定します。

- Transport.CONFIDENTIAL - Webサービスにおいて、データの内容を覗かれないようにデータを送信する必要があることを指定します。

デフォルト値はTransport.NONEです。

enum

いいえ

例

package examples.webservices.security_https;
import weblogic.jws.security.UserDataConstraint;
...
@WebService(name="SecurityHttpsPortType",
serviceName="SecurityHttpsService",
targetNamespace="http://example.org")
@UserDataConstraint(
transport=UserDataConstraint.Transport.CONFIDENTIAL)
public class SecurityHttpsImpl {
...

weblogic.jws.security.WssConfiguration

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

Webサービスで使用するWebサービス・セキュリティ構成の名前を指定します。JWSファイルでこのアノテーションを指定しなかった場合、デフォルトのセキュリティ構成(default_wss)をドメインで作成済みであれば、Webサービスは、そのセキュリティ構成に関連付けられます。

@WssConfigurationアノテーションは、Webサービスでメッセージ・レベルのセキュリティ(暗号化およびデジタル署名)が構成されている場合にのみ有効です。このアノテーションを使用してWebサービスに関連付けられたセキュリティ構成では、IDの認証にX.509証明書を使用するかどうか、パスワード・ダイジェストを使用するかどうか、暗号化やデジタル署名にキーストアを使用するかどうかなどを指定します。

WebLogic Webサービスは、必ずしもセキュリティ構成と関連付ける必要はありません。Webサービスのセキュリティ・ランタイムのデフォルトの動作が十分なものであれば、追加の構成は不要です。しかし、Webサービスでデフォルトとは異なる動作が必要とされる場合(IDの認証に、デフォルトのユーザー名/パスワードのトークンではなくX.509証明書を使用する場合など)は、Webサービスにセキュリティ構成を関連付ける必要があります。

セキュリティ構成を指定したWebサービスを呼び出すことができるようにするには、あらかじめ管理コンソールでセキュリティ構成を作成しておく必要があります。詳細は、Oracle WebLogic Server管理コンソール・ヘルプのWebサービス・セキュリティ構成の作成に関する項を参照してください。メッセージ・レベルのセキュリティの概要は、『Oracle WebLogic Server WebLogic Webサービスの保護』のメッセージ・レベルのセキュリティの構成に関する項を参照してください。

注意:
@WssConfigurationアノテーションを使用する場合、単一のWebアプリケーションにパッケージ化されているすべてのWebLogic Webサービスは同じセキュリティ構成に関連付けられている必要があります。たとえば、特定のWebアプリケーションに含まれるWebサービスを実装するすべてのJWSファイルに@WssConfigurationアノテーションが存在している場合は、各@WssConfigurationのvalue属性が同じでなければなりません。
jwsc Antタスクを使用してJWSファイルをWebサービスにコンパイルするときに複数のWebサービスが単一のWebアプリケーションに含まれていることを指定するには、単一の<module>要素で対応する<jws>要素をグループ化します。

属性

表3-34 weblogic.jws.security.WssConfiguration JWSアノテーション・タグの属性

名前

説明

データ型

必須?

value

このWebサービスに関連付けられたWebサービス・セキュリティ構成の名前を指定します。デフォルト構成名はdefault_wssです。

Webサービスを問題なく呼び出すことができるようにするには、管理コンソールであらかじめセキュリティ構成(デフォルト構成も含む)を作成しておく必要があります。

String

はい

例

以下の例では、Webサービスがmy_security_configurationセキュリティ構成に関連付けられるように指定する方法を示します。ここでは、関連するJavaコードのみを示します。

package examples.webservices.wss_configuration;
import javax.jws.WebService;
...
import weblogic.jws.security.WssConfiguration;
@WebService(...
...
@WssConfiguration(value="my_security_configuration")
public class WssConfigurationImpl {
...

weblogic.jws.soap.SOAPBinding

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:メソッド

SOAPメッセージ・プロトコルに対するWebサービス操作のマッピングを指定します。

このアノテーションは、@javax.jws.soap.SOAPBindingに似ていますが、クラスではなく、メソッドに適用される点が異なります。たとえば、このアノテーションを使用すると、あるWebサービス操作でRPCエンコードのSOAPバインディングを使用し、同じWebサービスの別の操作ではdocument-literal-wrappedのSOAPバインディングを使用するように指定できます。

注意:
@weblogic.jws.soap.SOAPBindingおよび@javax.jws.soap.SOAPBindingは同じクラス名を持つため、JWSファイルで使用する際は、どちらのアノテーションを指しているかに注意する必要があります。

属性

表3-35 weblogic.jws.soap.SOAPBinding JWSアノテーションの属性

名前

説明

データ型

必須?

style

呼び出されたアノテーション付き操作のリクエストおよびレスポンスのSOAPメッセージのメッセージ・スタイルを指定します。

有効な値は以下のとおりです。

- SOAPBinding.Style.RPC

- SOAPBinding.Style.DOCUMENT

デフォルト値はSOAPBinding.Style.DOCUMENTです。

enum

いいえ

use

呼び出されたアノテーション付き操作のリクエストおよびレスポンスのSOAPメッセージのフォーマット・スタイルを指定します。

有効な値は以下のとおりです。

- SOAPBinding.Use.LITERAL

- SOAPBinding.Use.ENCODED

デフォルト値はSOAPBinding.Use.LITERALです。

enum

いいえ

parameterStyle

メソッド・パラメータがメッセージ本文を表しているかどうか、パラメータが操作に基づく名前の最上位の要素内にラップされている要素かどうかを判別します。

有効な値は以下のとおりです。

- SOAPBinding.ParameterStyle.BARE

- SOAPBinding.ParameterStyle.WRAPPED

デフォルト値はSOAPBinding.ParameterStyle.WRAPPEDです。

注意:この属性は、ドキュメント・リテラル形式のWebサービスに対してのみ有効となります。つまり、style属性をSOAPBinding.Style.DOCUMENTに、use属性をSOAPBinding.Use.LITERALに設定している場合にのみ、この属性を指定できます。

enum

いいえ

例

次に、Webサービス操作がdocument-literal-wrappedのSOAPバインディングをデフォルトで使用するように指定する簡単なJWSファイルを示します。これは、@javax.jws.soap.SOAPBindingアノテーションをクラス・レベルで使用することによって指定できます。この例では、@weblogic.jws.soap.SOAPBindingアノテーションをメソッド・レベルで使用して個々のメソッドに異なるSOAPバインディングを指定する方法も示します。具体的には、sayHelloDocLitBare()メソッドではdocument-literal-bareのSOAPバインディングを使用し、sayHelloRPCEncoded()メソッドではRPCエンコードのSOAPバインディングを使用します。

package examples.webservices.soap_binding_method;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import weblogic.jws.WLHttpTransport;
@WebService(name="SoapBindingMethodPortType",
serviceName="SoapBindingMethodService",
targetNamespace="http://example.org")
@SOAPBinding(style=SOAPBinding.Style.DOCUMENT,
use=SOAPBinding.Use.LITERAL,
parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)
@WLHttpTransport(contextPath="soap_binding_method",
serviceUri="SoapBindingMethodService",
portName="SoapBindingMethodServicePort")
/**
* Simple JWS example that shows how to specify soap bindings for a method.
*/
public class SoapBindingMethodImpl {
@WebMethod()
@weblogic.jws.soap.SOAPBinding(
style=SOAPBinding.Style.DOCUMENT,
use=SOAPBinding.Use.LITERAL,
parameterStyle=SOAPBinding.ParameterStyle.BARE)
public String sayHelloDocLitBare(String message) {
System.out.println("sayHelloDocLitBare" + message);
return "Here is the message: '" + message + "'";
}
@WebMethod()
@weblogic.jws.soap.SOAPBinding(
style=SOAPBinding.Style.RPC,
use=SOAPBinding.Use.ENCODED)
public String sayHelloRPCEncoded (String message) {
System.out.println("sayHelloRPCEncoded" + message);
return "Here is the message: '" + message + "'";
}
}

weblogic.jws.security.SecurityRoles (非推奨)

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス、メソッド

注意:
WebLogic Server 9.0以降では、@weblogic.security.jws.SecurityRoles JWSアノテーションは非推奨となっています。

Webサービス操作にアクセスできるロールを指定します。

このアノテーションをクラス・レベルで指定した場合、指定したロールは、Webサービスのすべてのパブリック操作に適用されます。複数のロールを同じWebサービスの複数の操作に関連付ける場合は、メソッド・レベルでロールのリストを指定することもできます。

注意:
@SecurityRolesアノテーションは、EJB実装のWebサービスのコンテキスト内でのみ有効です。そのため、このアノテーションは、javax.ejb.SessionBeanを明示的に実装しているJWSファイル内でのみ指定できます。EJBへのアクセス保護の概念については、『Oracle WebLogic Serverセキュリティのプログラミング』のEnterprise JavaBeans (EJB)のセキュリティ対策に関する項を参照してください。JWSファイル内でのEJBの明示的な実装については、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のステートレス・セッションEJBを実装すべき場合に関する項を参照してください。

属性

表3-36 weblogic.jws.security.SecurityRoles JWSアノテーションの属性

名前

説明

データ型

必須?

rolesAllowed

Webサービスにアクセスできるロールのリストを指定します。

このアノテーションは、Webサービスを実装するステートレス・セッションEJBのejb-jar.xmlデプロイメント記述子の<method-permission>要素と同じ役割を持っています。

文字列の配列

いいえ

rolesReferenced

Webサービスで参照されるロールのリストを指定します。

Webサービスは、リストされたロールの資格証明を使用して他のリソースにアクセスできます。

このアノテーションは、Webサービスを実装するステートレス・セッションEJBのejb-jar.xmlデプロイメント記述子の<security-role-ref>要素と同じ役割を持っています。

文字列の配列

いいえ

例

以下の例では、AdminロールのみがWebサービスを呼び出すことができるようにクラス・レベルで指定する方法を示します。ここでは、関連する部分のみを示します。

package examples.webservices.security_roles;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import weblogic.ejbgen.Session;
import javax.jws.WebService;
...
import weblogic.jws.security.SecurityRoles;
@Session(ejbName="SecurityRolesEJB")
@WebService(...
// Specifies the roles who can invoke the entire Web Service
@SecurityRoles(rolesAllowed="Admnin")
public class SecurityRolesImpl implements SessionBean {
...

weblogic.jws.security.SecurityIdentity (非推奨)

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス

注意:
WebLogic Server 9.1以降では、@weblogic.security.jws.SecurityIdentity JWSアノテーションは非推奨となっています。

呼び出されたWebサービスが前提とするIDを指定します。

別の値を指定した場合を除き、Webサービスは、認証された呼出し側のIDを前提とします。このアノテーションを使用すると、Webサービスが特定のロールで実行されるように設定を変更できます。ロールは、WebLogic Serverのセキュリティ・レルム内のユーザーまたはグループに対応している必要があります。

注意:
@SecurityIdentityアノテーションは、EJB実装のWebサービスのコンテキスト内でのみ有効です。そのため、このアノテーションは、javax.ejb.SessionBeanを明示的に実装しているJWSファイル内でのみ指定できます。EJBへのアクセス保護の概念については、『Oracle WebLogic Serverセキュリティのプログラミング』のEnterprise JavaBeans (EJB)のセキュリティ対策に関する項を参照してください。JWSファイル内でのEJBの明示的な実装については、『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のステートレス・セッションEJBを実装すべき場合に関する項を参照してください。

属性

表3-37 weblogic.jws.security.SecurityIdentity JWSアノテーションの属性

名前

説明

データ型

必須?

value

呼び出されたWebサービスが前提とするロールを指定します。ロールは、WebLogic Serverのセキュリティ・レルム内のユーザーまたはグループに対応している必要があります。

String

はい

例

以下の例では、呼び出されたWebサービスがAdminロールで実行されるように指定する方法を示します。

package examples.webservices.security_roles;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import weblogic.ejbgen.Session;
import javax.jws.WebService;
...
import weblogic.jws.security.SecurityIdentity;
@Session(ejbName="SecurityRolesEJB")
@WebService(...
// Specifies that the Web Service runs as the Admin role
@SecurityIdentity( value="Admin")
public class SecurityRolesImpl implements SessionBean {
...

weblogic.wsee.jws.jaxws.owsm.SecurityPolicies

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス、メソッド

@weblogic.wsee.jws.jaxws.owsm.SecurityPolicyアノテーションの配列を指定します。

このアノテーションは、複数のOracle Web Services Manager (Oracle WSM) WS-PolicyファイルをJWSファイルのクラスまたはメソッドにアタッチする場合に使用します。アタッチするOracle WSM WS-Policyファイルが1つのみの場合は、@weblogic.wsee.jws.jaxws.owsm.SecurityPolicyを単独で使用できます。

このアノテーションの使用の詳細および例は、『Oracle WebLogic Server WebLogic Webサービスの保護』のOracle Webサービス・セキュリティ・ポリシーの使用に関する項を参照してください。

このJWSアノテーションには、属性はありません。

例

@SecurityPolicies({
@SecurityPolicy(uri="policy:firstPolicy.xml"),
@SecurityPolicy(uri="policy:secondPolicy.xml")
})

weblogic.wsee.jws.jaxws.owsm.SecurityPolicy

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス、メソッド

デジタル署名または暗号化に関する情報を格納しているOracle Web Services Manager (Oracle WSM) WS-PolicyファイルをリクエストまたはレスポンスSOAPメッセージに適用するように指定します。

このアノテーションを単独で使用すると、単一のOracle WSM WS-Policyファイルをクラスまたはメソッドに適用できます。複数のOracle WSM WS-Policyファイルをクラスまたはメソッドに適用する場合は、@weblogic.wsee.jws.jaxws.owms.SecurityPoliciesアノテーションを使用し、Oracle WSM WS-Policyファイルをまとめて適用します。

このアノテーションをクラス・レベルでのみ指定すると、Oracle WSM WS-Policyファイル(1つまたは複数)はWebサービスのあらゆるパブリック操作に適用されていることを示します。

Oracle WSM WS-SecurityポリシーはWebLogic Server JAX-WS WebサービスのWSDLに公開されません。(通常、Webサービスに関連付けられたポリシー・ファイルはそのWSDLにアタッチされます。Webサービス・クライアント・ランタイムはこれを読み取り、クライアント・アプリケーションから呼び出された操作からのSOAPメッセージ・リクエストのデジタル署名やデジタル暗号化を行うかどうかを判別したり、行う場合はその方法を判別したりします。)

このアノテーションの使用の詳細および例は、『Oracle WebLogic Server WebLogic Webサービスの保護』のOracle Webサービス・セキュリティ・ポリシーの使用に関する項を参照してください。

注意:
すべてのJWSのアノテーションにあてはまることですが、@SecurityPolicyアノテーションは実行時にはオーバーライドできません。つまり、ビルド時にアノテーションを使用して指定したOracle WSM WS-Policyファイルが、常にWebサービスに関連付けられることになります。これは、たとえば管理コンソールを使用して実行時に関連付けられたOracle WSM WS-Policyファイルを確認できても、それを削除(関連付け解除)することはできないことを意味します。ただし、管理コンソールを使用して追加のOracle WSM WS-Policyファイルを関連付けることはできます。手順の詳細は、『Oracle WebLogic Server WebLogic Webサービスの保護』の管理コンソールでOracle WSMセキュリティ・ポリシーの構成に関する項を参照してください。

属性

表3-38 weblogic.jws.SecurityPolicy JWSアノテーション・タグ属性

名前

説明

データ型

必須?

uri

Oracle WSM WS-Policyファイルを取得する場所を指定します。

Web上のOracle WSM WS-PolicyファイルのURLを指定するには、http:接頭辞を使用します。

Oracle WSM WS-PolicyファイルがWebLogic ServerのWebサービス・アーカイブ・ファイルまたは共有可能なJava EEライブラリにパッケージ化されていることを指定する場合は、以下の例のようにpolicy:接頭辞を使用します。

@SecurityPolicy(uri=
"policy:oracle/wss10_username_token_with_message_protection_server_policy")

String

はい

例

@SecurityPolicy(uri=
"policy:oracle/wss10_username_token_with_message_protection_server_policy")

weblogic.wsee.wstx.wsat.Transactional

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット:クラス、メソッド

アノテーション付きのクラスまたはメソッドをWebサービス原子性トランザクション内で実行するかどうかを指定します。

Webサービス・クラス・レベルで@Transactionalアノテーションを指定すると、サービス・エンドポイント・インタフェースで定義されたすべての双方向同期メソッドに設定が適用されます。フロー・タイプの値はメソッド・レベルでオーバーライドできますが、バージョンはトランザクション全体で一致している必要があります。

WebLogic Webサービスでは、次の仕様をサポートすることで、Websphere、JBoss、Microsoft .NETなどの外部トランザクション処理システムとの相互運用性を実現しています。

- WS-AtomicTransaction(WS-AT)バージョン1.0、1.1および1.2: http://docs.oasis-open.org/ws-tx/wstx-wsat-1.2-spec-cs-01/wstx-wsat-1.2-spec-cs-01.html

- WS-Coordinationバージョン1.0、1.1および1.2: http://docs.oasis-open.org/ws-tx/wstx-wscoor-1.2-spec-cs-01/wstx-wscoor-1.2-spec-cs-01.html

属性

表3-39 weblogic.wsee.wstx.wsat.Transactionalアノテーションの属性

名前

説明

データ型

必須?

version

Webサービスおよびクライアントに対して使用されるWebサービス原子性トランザクション調整コンテキストのバージョン。クライアントの場合、アウトバウンド・メッセージに使用されるバージョンのみを指定します。指定した値は、トランザクション全体で一致している必要があります。

有効な値は、WSAT10、WSAT11、WSAT12およびDEFAULTです。WebサービスのDEFAULT値は、(インバウンド・リクエストで起動された)3つのバージョンすべてです。Webサービス・クライアントのDEFAULT値はWSAT10です。

例:

@Transactional(version=
Transactional.Version.WSAT10])

String

いいえ

value

Webサービス原子性トランザクション調整コンテキストがトランザクション・フローとともに渡されるかどうか。有効な値は、表3-40を参照してください。

String

いいえ

次の表は、フロー・タイプの有効な値と、Webサービスおよびクライアントでのそれらの意味をまとめたものです。この表では、@TransactionAttributeアノテーションを使用するEJB型のWebサービスに対してWebサービス原子性トランザクションを構成する際の有効な値の組合せも示しています。

表3-40 フロー・タイプの値

値

Webサービス・クライアント

Webサービス

EJB @TransactionAttributeの有効な値

NEVER

トランザクション調整コンテキストをエクスポートしません。

トランザクション調整コンテキストをインポートしません。

NEVER、NOT_SUPPORTED、REQUIRED、REQUIRES_NEW、SUPPORTS

SUPPORTS(デフォルト)

トランザクションがある場合は、トランザクション調整コンテキストをエクスポートします。

トランザクション調整コンテストがメッセージに存在する場合は、それをインポートします。

REQUIRED、SUPPORTS

MANDATORY

トランザクション調整コンテキストをエクスポートします。アクティブなトランザクションがない場合は、例外がスローされます。

トランザクション調整コンテキストをインポートします。アクティブなトランザクションがない場合は、例外がスローされます。

MANDATORY、REQUIRED、SUPPORTS

例

@Transactional(value = Transactional.TransactionFlowType.SUPPORTS,
version="Transactional.Versino.WSAT12

4 Webサービスの信頼性のあるメッセージングのポリシー・アサーションに関するリファレンス

この章では、WS-PolicyファイルのWebサービスの信頼性のあるメッセージング・ポリシー・アサーションに関するリファレンス情報を示します。

この章の内容は以下のとおりです。

- Webサービスの信頼性のあるメッセージングのアサーションを含むWS-Policyファイルの概要

- Webサービスの信頼性のあるメッセージングのアサーション - バージョン1.2および1.1を含むWS-Policyファイル

- Webサービスの信頼性のあるメッセージングのアサーション - バージョン1.0(非推奨)を含むWS-Policyファイル

Webサービスの信頼性のあるメッセージングのアサーションを含むWS-Policyファイルの概要

WS-Policyファイルを使用すると、宛先エンドポイントで実行されているWebLogic Webサービスの信頼性のあるメッセージング機能を構成できます。Webサービスに関連付けられているWS-Policyファイルの名前を指定するには、そのWebサービスを実装しているJWSファイルで@Policy JWSアノテーションを使用します。WS-Policyファイルとは、WS-Policy仕様(http://www.w3.org/TR/ws-policy/)に準拠したXMLファイルです。

WS-Policyファイルのルート要素は常に<wsp:Policy>です。Webサービスの信頼性のあるメッセージングを構成するには、まず<wsrmp:RMAssertion>子要素を追加する必要があります。これは主に、信頼性のあるメッセージングのすべてのポリシー・アサーションをグループ化するための操作です。次に、Webサービスの信頼性のあるメッセージングを定義するために<wsrmp:RMAssertion>に子要素を追加します。これらのすべてのアサーションは、WS-PolicyAssertions仕様(http://www.ibm.com/developerworks/library/specification/ws-polas)に準拠します。

WebLogic Serverには、標準的な信頼性のあるメッセージング・アサーションを含むWS-Policyファイルがデフォルトで用意されているので、独自のWS-Policyファイルを作成しない場合は、このファイルを使用できます。ディフォルトWS-Policyファイルは次に定義されています。

- JAX-WS: 『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』の信頼性のあるメッセージングおよびMakeConnectionにパッケージ化されているWS-Policyファイルに関する項

- JAX-RPC: 『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』の信頼性のあるメッセージング用にパッケージ化されているWS-Policyファイルに関する項

信頼性のあるWebLogic Webサービスに関するタスク中心の説明は、次を参照してください。

- JAX-WS: 『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のWeb Services Reliable Messagingの使用に関する項

- JAX-RPC: 『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』のWeb Services Reliable Messagingの使用に関する項

Webサービスの信頼性のあるメッセージングのアサーション - バージョン1.2および1.1を含むWS-Policyファイル

次の項では、http://docs.oasis-open.org/ws-rx/wsrmp/200702にある、WS Reliable Messaging Policy Assertionバージョン1.2および1.1に基づいた、Webサービスの信頼性のあるメッセージングのアサーションを含むWS-Policyファイルを作成する方法について説明します。

グラフィカルな表現

次の図では、WS-PolicyファイルにおけるWebサービスの信頼性のあるメッセージング・ポリシー・アサーションの要素の階層構造を示します。

注意:
アサーションは、下の図に示す順序で指定する必要があります。

図4-1 Webサービスの信頼性のあるメッセージング・ポリシー・アサーション1.2および1.1の要素階層

「図4-1 Webサービスの信頼性のあるメッセージング・ポリシー・アサーション1.2および1.1の要素階層」の説明

Webサービスの信頼性のあるメッセージングのアサーション1.2および1.1を含むWS-Policyファイルの例

次の例では、WebLogic Webサービスの信頼性のあるメッセージングの構成に使用する簡単なWS-Policyファイルを示します。

<?xml version="1.0"?>
<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<wsrmp:RMAssertion
xmlns:wsrmp="http://docs.oasis-open.org/ws-rx/wsrmp/200702">
<wsrmp:SequenceSTR/>
<wsrmp:DeliveryAssurance>
<wsp:Policy>
<wsrmp:ExactlyOnce/>
</wsp:Policy>
</wsrmp:DeliveryAssurance>
</wsrmp:RMAssertion>
</wsp:Policy>

要素の説明

次の各項では、Webサービスの信頼性のあるメッセージングのWS-Policyファイルの要素について説明します。

wsp:Policy

ネストされたポリシー・アサーションをグループ化します。

wsrmp:RMAssertion

Webサービスの信頼性のあるメッセージングのメイン・アサーションで、単一の要素にある他のすべてのアサーションをグループ化します。WS-Policyファイルでこのアサーションを指定すると、対応するWebサービスが、信頼性を確保した状態で呼び出されます。

次の表は、wsrmp:RMAssertion要素の属性をまとめたものです。

表4-1 <wsrmp:RMAssertion>の属性

の属性" width="100%">

属性

説明

必須?

optional

信頼性を確保した状態でWebサービス操作を呼び出す必要があるかどうかを指定します。この属性の有効な値は、trueおよびfalseです。デフォルト値はfalseです。

いいえ

wsrmp:SequenceSTR

信頼性のあるシーケンスでメッセージを保護するために、CreateSequenceメッセージで参照されるwsse:SecurityTokenReferenceをランタイムが使用するように指定します。指定できるセキュリティ・アサーションは1つのみとなります。つまり、wsrmp:SequenceSTRまたはwsrmp:SequenceTransportSecurityのいずれか1つは指定できますが、両方は指定できません。

wsrmp:SequenceTransportSecurity

信頼性のあるシーケンスでメッセージを保護するために、CreateSequenceメッセージの送信に使用されるSSLトランスポートセッションをランタイムが使用することを指定します。このアサーションは、特定のトランスポート・レベル・セキュリティ・メカニズム(sp:HttpsTokenなど)の使用を要求するsp:TransportBindingアサーションとともに使用する必要があります。指定できるセキュリティ・アサーションは1つのみとなります。つまり、wsrmp:SequenceSTRまたはwsrmp:SequenceTransportSecurityのいずれか1つは指定できますが、両方は指定できません。

wsrmp:DeliveryAssurance

Webサービスの配信保証(またはサービス品質)を指定します。次の表に定義されている配信保証のいずれか1つを設定できます。設定しない場合、配信保証にはデフォルトのExactlyOnceが使用されます。

表4-2 信頼性のあるメッセージングの配信保証

配信保証

説明

wsrmp:AtMostOnce

メッセージは最大で1回、重複なしに配信されます。メッセージによっては、一度も配信されない可能性もあります。

wsrmp:AtLeastOnce

すべてのメッセージが、少なくとも1回、配信されます。メッセージによっては、1回よりも多く配信される可能性があります。

wsrmp:ExactlyOnce

すべてのメッセージが、必ず1回重複なしに配信されます。デフォルトではこの値が使用されます。

wsrmp:InOrder

メッセージは、送信された順序で配信されます。この配信保証は、上記の3つの保証と組み合せることも可能です。この値はデフォルトで有効になっています。

配信保証は、wsp:Policy要素で囲む必要があります。例:

<wsrmp:DeliveryAssurance>
<wsp:Policy>
<wsrmp:ExactlyOnce/>
</wsp:Policy>
</wsrmp:DeliveryAssurance>

Webサービスの信頼性のあるメッセージングのアサーション - バージョン1.0(非推奨)を含むWS-Policyファイル

次の各項では、http://schemas.xmlsoap.org/ws/2005/02/rm/policy/にある、WS Reliable Messaging Policy Assertion 1.0に基づいたWebサービスの信頼性のあるメッセージングのアサーションを含むWS-Policyファイルを作成する方法について説明します。

グラフィカルな表現

次の図では、WS-PolicyファイルにおけるWebサービスの信頼性のあるメッセージング・ポリシー・アサーションの要素の階層構造を示します。

注意:
アサーションは、下の図に示す順序で指定する必要があります。

図4-2 Webサービスの信頼性のあるメッセージング・ポリシー・アサーションの要素階層

「図4-2 Webサービスの信頼性のあるメッセージング・ポリシー・アサーションの要素階層」の説明

Webサービスの信頼性のあるメッセージングのアサーションを含むWS-Policyファイルの例

次の例では、WebLogic Webサービスの信頼性のあるメッセージングの構成に使用する簡単なWS-Policyファイルを示します。

<?xml version="1.0"?>
<wsp:Policy
xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:beapolicy="http://www.bea.com/wsrm/policy"
>
<wsrm:RMAssertion >
<wsrm:InactivityTimeout
Milliseconds="600000" />
<wsrm:BaseRetransmissionInterval
Milliseconds="3000" />
<wsrm:ExponentialBackoff />
<wsrm:AcknowledgementInterval
Milliseconds="200" />
<beapolicy:Expires Expires="P1D" optional="true"/>
</wsrm:RMAssertion>
</wsp:Policy>

要素の説明

次の各項では、Webサービスの信頼性のあるメッセージングのWS-Policyファイルの要素について説明します。

beapolicy:Expires

信頼性のあるWebサービスの有効期限が切れ、これ以上のシーケンスを受け付けなくなるまでの時間を指定します。信頼性のあるWebサービスのこのインスタンスを呼び出しているクライアント・アプリケーションが、有効期限後に操作を呼び出そうとすると、エラーが発生します。

WS-Policyファイルで指定されていない場合、デフォルトでは、Webサービスを無期限で利用できます。

表4-3 <beapolicy:Expires>の属性

の属性" width="100%">

属性

説明

必須?

Expires

信頼性のあるWebサービスが期限切れになるまでの時間。この属性のフォーマットは、XMLスキーマのduration(http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#duration)のデータ型に準拠しています。たとえば、信頼性のあるWebサービスが3時間後に期限切れになるように設定するには、Expires="P3H"と指定します。

はい

beapolicy:QOS

Webサービスの配信保証(またはサービス品質を指定します。

表4-4 <beapolicy:QOS>の属性

の属性" width="100%">

属性

説明

必須?

QOS

配信保証を指定します。以下のいずれかの値を指定できます。

- AtMostOnce - メッセージは最大で1回、重複なしに配信されます。メッセージによっては、一度も配信されない可能性もあります。

- AtLeastOnce - すべてのメッセージが、少なくとも1回、配信されます。メッセージによっては、1回よりも多く配信される可能性があります。

- ExactlyOnce - すべてのメッセージが、必ず1回、重複なしに配信されます。

また、メッセージを順序どおりに配信するように指定するために、InOrder文字列を追加することもできます。

XXXOnceのいずれかの値を指定したが、InOrderを指定しなかった場合、メッセージの配信順序は保証されません。これは、QOS要素全体が指定されていない場合のデフォルト値(ExactlyOnce InOrder)とは異なります。

この属性のデフォルト値はExactlyOnce InOrderです。

例: <beapolicy:QOS QOS="AtMostOnce InOrder" />

はい

wsrm:AcknowledgementInterval

宛先エンドポイントがスタンドアロンの確認応答を送信しなければならない最大間隔(ミリ秒単位)を指定します。

宛先エンドポイントは、ソース・エンドポイントからメッセージを受信した直後に、返されたメッセージに対する確認応答を送信できます。また、スタンドアロンの確認応答で個別に確認応答を送信することもできます。返されたメッセージに対して確認応答を送信できない場合、宛先エンドポイントは、スタンドアロンの確認応答を送信するまで、確認応答の間隔に設定した時間範囲内で待機することがあります。未確認メッセージがない場合、宛先エンドポイントは確認応答を送信しない可能性があります。

このアサーションは、メッセージまたは確認応答の形式を送信時の状態から変更しません。これは、ソース・エンドポイントが適切に調整できるように確認応答のタイミングを通信するためです。

この要素は省略可能です。この要素を指定しなかった場合、デフォルト値は、宛先エンドポイント用に構成されたストア・アンド・フォワード(SAF)エージェントによって設定されます。

表4-5 <wsrm:AcknowledgementInterval>の属性

の属性" width="100%">

属性

説明

必須?

Milliseconds

宛先エンドポイントがスタンドアロンの確認応答を送信しなければならない最大間隔(ミリ秒単位)を指定します。

はい

wsrm:BaseRetransmissionInterval

ソース・エンドポイントがメッセージを送信してから再送信を行うまでの間隔(ミリ秒単位)を指定します。

ソース・エンドポイントが、この要素で指定した間隔内で所定のメッセージの確認応答を受信しなかった場合、ソース・エンドポイントはメッセージを再送信します。ソース・エンドポイントは、メッセージのシーケンスの存続期間内の任意の時点で、この再送信間隔を変更することがあります。このアサーションは、メッセージまたは確認応答の形式を送信時の状態から変更せず、その送信のタイミングのみを指定します。

この要素を<wsrm:ExponentialBackoff>要素と組み合せて使用すると、<wsrm:ExponentialBackoff>で指定したアルゴリズムを使用して再送信間隔を調整するように指定できます。

この要素は省略可能です。この要素を指定しなかった場合、デフォルト値は、ソース・エンドポイント用に構成されたストア・アンド・フォワード(SAF)エージェントによって設定されます。管理コンソールを使用してSAFエージェントを構成する場合、この値には「Retry Delay Base」というラベルが付けられます。

表4-6 <wsrm:BaseRetransmissionInterval>の属性

の属性" width="100%">

属性

説明

必須?

Milliseconds

ソース・エンドポイントがメッセージを再送信するまでの時間(ミリ秒)。

はい

wsrm:ExponentialBackoff

再送信の間隔が、指数関数的なバックオフ・アルゴリズムを使用して調整されることを指定します。

この要素は、<wsrm:BaseRetransmissionInterval>と一緒に使用します。宛先エンドポイントが、<wsrm:BaseRetransmissionInterval>で指定した時間内でメッセージのシーケンスを確認応答しなかった場合、メッセージが引続き確認されなければ、連続再送信のタイミングに対して、ソース・エンドポイントは指数関数的なバックオフ・アルゴリズムを使用します。

指数関数的なバックオフ・アルゴリズムは、連続再送信の間隔が、基本の再送信間隔を基に指数的に増えるように指定します。たとえば、基本の再送信間隔が2秒で、指数関数的なバックオフ要素がWS-Policyファイルで設定されている場合、連続再送信の間隔は、メッセージが確認されなければ、2、4、8、16、32秒というように増えていきます。

この要素は省略可能です。設定しなかった場合、連続再送信の間隔は指数的に増えず、同じ値が維持されます。

この要素には属性はありません。

wsrm:InactivityTimeout

メッセージのシーケンスが非アクティブになっている期間(ミリ秒)を指定します。メッセージのシーケンスは、一意のシーケンス番号で識別されるメッセージのセットとして定義され、これに対して特定の配信保証が適用されます。通常、シーケンスは単一のソース・エンドポイントから生じます。この要素で指定した期間中に、宛先エンドポイントがソース・エンドポイントからのメッセージを受け取っていない場合、宛先エンドポイントは、処理が行われずシーケンスは終了したものと見なす可能性があります。これは、ソース・エンドポイントについても同様です。

この要素は省略可能です。WS-Policyファイルで設定しなかった場合、シーケンスは、非アクティブな状態によってタイムアウトすることはありません。

表4-7 <wsrm:InactivityTimeout>の属性

の属性" width="100%">

属性

説明

必須?

Milliseconds

非アクティブの期間を定義する値(ミリ秒)。

はい

wsrm:RMAssertion

Webサービスの信頼性のあるメッセージングのメイン・アサーションで、単一の要素にある他のすべてのアサーションをグループ化します。

WS-Policyファイルでこのアサーションを指定すると、対応するWebサービスが、信頼性を確保した状態で呼び出されます。

表4-8 <wsrm:RMAssertion>の属性

の属性" width="100%">

属性

説明

必須?

optional

信頼性を確保した状態でWebサービス操作を呼び出す必要があるかどうかを指定します。

この属性の有効な値は、trueおよびfalseです。デフォルト値はfalseです。

いいえ

5 WebサービスのMakeConnectionポリシー・アサーションに関するリファレンス

この章では、WS-PolicyファイルのWebサービスのMakeConnectionポリシー・アサーションに関するリファレンス情報を示します。

この章の内容は以下のとおりです。

- MakeConnectionアサーションを含むWS-Policyファイルの概要

- WebサービスのMakeConnectionを含むWS-Policyファイル

注意:
この項の内容は、JAX-WS Webサービスのみに適用され、JAX-RPC Webサービスには適用されません。

MakeConnectionアサーションを含むWS-Policyファイルの概要

WS-Policyファイルを使用すると、WebサービスのMakeConnectionを有効化し構成できます。Webサービスに関連付けられているWS-Policyファイルの名前を指定するには、そのWebサービスを実装しているJWSファイルで@Policy JWSアノテーションを使用します。WS-Policyファイルとは、WS-Policy仕様(http://www.w3.org/TR/ws-policy/)に準拠したXMLファイルです。

WS-Policyファイルのルート要素は、常に<wsp:Policy>です。WebサービスのMakeConnectionを構成するには、単に<wsmc:MCSupported>子要素を追加します。ポリシー・アサーションは、WS-PolicyAssertions仕様(http://www.ibm.com/developerworks/library/specification/ws-polas)に準拠します。

WebLogic Serverには、標準的なMakeConnectionアサーションを含むWS-Policyファイルがデフォルトで用意されているので、独自のWS-Policyファイルを作成しない場合は、このファイルを使用できます。デフォルトのWS-Policyファイルは、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』の信頼性のあるメッセージングおよびMakeConnectionにパッケージ化されているWS-Policyファイルに関する項で定義されています。

MakeConnectionの有効化および構成に関するタスク中心の説明は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のファイアウォールを使用した非同期Webサービスのクライアント(MakeConnection)の使用に関する項を参照してください。

WebサービスのMakeConnectionを含むWS-Policyファイル

次の各項では、WS-MakeConnection仕様(http://docs.oasis-open.org/ws-rx/wsmc/200702)に基づいたWebサービスのMakeConnectionサーションを含むWS-Policyファイルを作成する方法について説明します。

グラフィカルな表現

次の図では、WS-PolicyファイルにおけるWebサービスのMakeConnectionポリシー・アサーションの要素の階層構造を示します。

図5-1 WebサービスのMakeConnectionの要素階層1.1および1.0

「図5-1 WebサービスのMakeConnection 1.1および1.0の要素階層」の説明

MakeConnectionおよびWS-Policy 1.5を含むWS-Policyファイルの例

次の例では、WebLogic WebサービスのMakeConnectionの構成に使用する簡単なWS-Policyファイルを示します。WS-Policy 1.5のサポートを指定します。

<?xml version="1.0"?>
<wsp15:Policy  xmlns:wsp15="http://www.w3.org/ns/ws-policy"
xmlns:wsmc="http://docs.oasis-open.org/ws-rx/wsmc/200702">
<wsmc:MCSupported wsp15:Optional="true" />
</wsp15:Policy>

要素の説明

次の各項では、WebサービスのMakeConnectionのWS-Policyファイルの要素について説明します。

wsp:Policy

ネストされたポリシー・アサーションをグループ化します。

wsmc:MCSupported

WS-Policyファイルでこのアサーションを指定すると、対応するWebサービスが、MakeConnectionをトランスポート・モデルとして使用します。

次の表は、wsmc:MCSupport要素の属性をまとめたものです。

表5-1 <wsmc:MCSupport>の属性

の属性" width="100%">

属性

説明

必須?

optional

Webサービス・クライアントでMakeConnectionを使用する必要があるかどうかを指定します。この属性の有効な値は、trueおよびfalseです。デフォルト値はtrueです。falseに設定する場合、ReplyToおよびFaultToの両方のヘッダーにMakeConnection非同期URIを含む必要があります。

いいえ

6 Oracle Webサービス・セキュリティ・ポリシー・アサーションのリファレンス

この章では、独自のスキーマを使用したWebLogic Webサービス・セキュリティ・ポリシー・ファイルで構成可能なセキュリティ・アサーションに関するリファレンス情報を示します。

OASIS WS-SecurityPolicy仕様が規定される前にリリースされた旧リリースのWebLogic Serverでは、WS-Policy仕様に基づき、独自のWebサービス・セキュリティ・ポリシー・スキーマを使用して記述されたセキュリティ・ポリシー・ファイルを使用していました。WebLogic Serverの今回のリリースでは、OASIS WS-SecurityPolicy 1.2仕様(http://www.oasis-open.org/committees/download.php/21401/ws-securitypolicy-1.2-spec-cd-01.pdf)に準拠するセキュリティ・ポリシー・ファイルがサポートされます。WebLogic Server 9で初めて組み込まれた独自のWebサービス・セキュリティ・ポリシー・ファイルもサポートされますが、このレガシー・ポリシー・フォーマットは非推奨となったため、新しいアプリケーションには使用しないでください。

この章の内容は以下のとおりです。

- セキュリティ・アサーションを含むポリシー・ファイルの概要

- グラフィカルな表現

- セキュリティ要素のあるポリシー・ファイルの例

- 要素の説明

- MessagePartsを使用した暗号化または署名を必要とするSOAPメッセージの部分指定

注意:
この項の内容は、Oracle Webサービス・セキュリティ・ポリシー・スキーマを使用して記述されたポリシーを使用するJAX-RPC Webサービスのみに適用され、JAX-WS Webサービス、およびOASIS WS-SecurityPolicy 1.2仕様に基づいて記述されたポリシーには適用されません。

セキュリティ・アサーションを含むポリシー・ファイルの概要

ポリシー・ファイルを使用すると、WebLogic Webサービスのメッセージ・レベルのセキュリティを構成できます。WebLogic Webサービスに関連付けられているセキュリティ・ポリシー・ファイルの名前を指定するには、そのWebサービスを実装しているJWSファイルで@Policyおよび@Policies JWSアノテーションを使用します。

セキュリティ・ポリシーのファイルは、http://www-106.ibm.com/developerworks/library/specification/ws-polfram/にあるWS-Policy仕様に準拠したXMLファイルです。WS-Policyファイルのルート要素は、常に<wsp:Policy>です。メッセージ・レベルのセキュリティを構成するには、認証用にサポートされているトークンのタイプ、およびSOAPメッセージを暗号化してデジタル署名する方法を指定するポリシー・アサーションを追加します。

注意:
これらのセキュリティ・ポリシー・アサーションは、2002年12月18日に公開されたWeb Services Security Policy Language (WS-SecurityPolicy)仕様に基づいています。つまり、WebLogic Serverのアサーションの正確な構文と使用方法は、この仕様で説明されているアサーションとは異なっていますが、意味上の違いはありません。このアサーションは、最新の仕様(2005年7月13日付)には基づいていません。

Oracle Webサービス・セキュリティ・ポリシー・スキーマを使用するポリシー・ファイルには、次のネームスペースが含まれます。

<wsp:Policy
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wssp="http://www.bea.com/wls90/security/policy"
>

このリリースのWebLogic Serverには、OASIS WS-SecurityPolicy 1.2仕様に準拠しているパッケージ化されたポリシー・ファイルも数多く用意されています。WS-SecurityPolicy 1.2ポリシー・ファイルとOracle独自のWebサービス・セキュリティ・ポリシー・スキーマ・ファイルには、相互の互換性はありません。したがって、1つのWebサービス・セキュリティ構成で両方のタイプのポリシー・ファイルを使用できません。WS-SecurityPolicy 1.2セキュリティ・ポリシー・ファイルの使用については、『Oracle WebLogic Server WebLogic Webサービスの保護』のWS-SecurityPolicy 1.2ポリシー・ファイルの使用に関する項を参照してください。

メッセージ・レベルでセキュリティ保護されたWebLogic Webサービスの作成に関するタスク中心の説明は、『Oracle WebLogic Server WebLogic Webサービスの保護』のメッセージ・レベルのセキュリティの構成に関する項を参照してください。

グラフィカルな表現

以下の図では、 Oracleセキュリティ・ポリシー・ファイルのセキュリティ・アサーションの要素の階層を示します。

図6-1 セキュリティOracleセキュリティ・ポリシー・アサーションの要素階層

「図6-1 Oracleセキュリティ・ポリシー・アサーションの要素階層」の説明

セキュリティ要素のあるポリシー・ファイルの例

<?xml version="1.0"?>
<wsp:Policy
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wssp="http://www.bea.com/wls90/security/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wls="http://www.bea.com/wls90/security/policy/wsee#part"
>
<wssp:Identity>
<wssp:SupportedTokens>
<wssp:SecurityToken TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-2004-01-saml-token-profile-1.0#SAMLAssertionID">
<wssp:Claims>
<wssp:ConfirmationMethod>sender-vouches</wssp:ConfirmationMethod>
</wssp:Claims>
</wssp:SecurityToken>
</wssp:SupportedTokens>
</wssp:Identity>
<wssp:Confidentiality>
<wssp:KeyWrappingAlgorithm
URI="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
<wssp:Target>
<wssp:EncryptionAlgorithm
URI="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
<wssp:MessageParts
Dialect="http://www.bea.com/wls90/security/policy/wsee#part">
wls:SecurityHeader(Assertion)
</wssp:MessageParts>
</wssp:Target>
<wssp:Target>
<wssp:EncryptionAlgorithm
URI="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
<wssp:MessageParts
Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">
wsp:Body()</wssp:MessageParts>
</wssp:Target>
<wssp:KeyInfo />
</wssp:Confidentiality>
</wsp:Policy>

要素の説明

以下の項では、要素について詳しく説明します。

CanonicalizationAlgorithm

デジタル署名するSOAPメッセージの要素を標準化するのに使用するアルゴリズムを指定します。

注意:
WebLogic Webサービス・セキュリティ・ランタイムでは、ネームスペース接頭辞のリストや、正規化アルゴリズムに対してデフォルト・ネームスペースの存在を示すトークンを含む、InclusiveNamespaces PrefixListの指定をサポートしていません。

表6-1 <CanonicalizationAlgorithm>の属性

の属性" width="100%">

属性

説明

必須?

URI

デジタル署名するSOAPメッセージの標準化に使用するアルゴリズム。

指定できるのは以下の標準化アルゴリズムのみです。

http://www.w3.org/2001/10/xml-exc-cl4n#

はい

Claims

特定のタイプのセキュリティ・トークンに関連付けられる追加メタデータ情報を指定します。セキュリティ・トークンのタイプによって、以下の子要素を指定可能、または指定することが必要です。

- ユーザー名トークンの場合、<UsePassword>子要素を定義すると、SOAPメッセージでパスワード・ダイジェストを使用するかどうかを指定できます。詳細は、「UsePassword」を参照してください。

- SAMLトークンの場合、<ConfirmationMethod>子要素を定義して、SAML確認のタイプ(sender-vouchesまたはholder-of-key)を指定する必要があります。詳細は、「ConfirmationMethod」を参照してください。

セキュアな会話のセキュリティ・トークンの存続期間は、デフォルトでは12時間です。このデフォルト値を変更するには、<TokenLifeTime>子要素を定義して、セキュリティ・トークンの新しい存続期間(ミリ秒)を指定します。詳細は、「TokenLifeTime」を参照してください。

この要素には、属性はありません。

Confidentiality

SOAPメッセージの暗号化に使用するアルゴリズムやキーに加え、SOAPメッセージの一部または全部を暗号化するように指定します。

たとえば、Webサービスで、SOAPメッセージの本文全体をtriple-DESで暗号化する必要がある場合などです。

表6-2 <Confidentiality>の属性

の属性" width="100%">

属性

説明

必須?

SupportTrust10

.

この属性の有効な値は、trueおよびfalseです。デフォルト値はfalseです。

いいえ

ConfirmationMethod

IDにSAMLトークンを使用する場合に使う確認メソッドのタイプを指定します。この要素に対しては、sender-vouchesまたはholder-of-keyという2つの値のうちのいずれかを指定する必要があります。例:

<wssp:Claims>
<wssp:ConfirmationMethod>sender-vouches</wssp:ConfirmationMethod>
</wssp:Claims>

この要素には、属性はありません。

<ConfirmationMethod>要素は、SAMLトークンを使用している場合のみ、必要です。

セキュリティ・ポリシー・ファイル内の<ConfirmationMethod>アサーションの正確な場所は、構成している構成メソッドのタイプによって違います。具体的には、以下のとおりです。

sender-vouches:

<Identity>アサーション内の<ConfirmationMethod>アサーションを、次の例に示すように指定します。

<?xml version="1.0"?>
<wsp:Policy
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wssp="http://www.bea.com/wls90/security/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wls="http://www.bea.com/wls90/security/policy/wsee#part"
>
<wssp:Identity>
<wssp:SupportedTokens>
<wssp:SecurityToken
TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-2004-01-saml-token-profile-1.0#SAMLAssertionID">
<wssp:Claims>
<wssp:ConfirmationMethod>sender-vouches</wssp:ConfirmationMethod>
</wssp:Claims>
</wssp:SecurityToken>
</wssp:SupportedTokens>
</wssp:Identity>
</wsp:Policy>

holder-of-key:

<Integrity>アサーション内の<ConfirmationMethod>アサーションを指定します。この確認メソッドのための<Integrity>アサーションにSAMLトークンを含めるのは、Webサービス・ランタイムで、sender-vouchesでは必要でないメッセージの整合性の証明が必要なためです。

例:

<?xml version="1.0"?>
<wsp:Policy
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wssp="http://www.bea.com/wls90/security/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wls="http://www.bea.com/wls90/security/policy/wsee#part">
<wssp:Integrity>
<wssp:SignatureAlgorithm
URI="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<wssp:CanonicalizationAlgorithm
URI="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<wssp:Target>
<wssp:DigestAlgorithm
URI="http://www.w3.org/2000/09/xmldsig#sha1" />
<wssp:MessageParts
Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">
wsp:Body()
</wssp:MessageParts>
</wssp:Target>
<wssp:SupportedTokens>
<wssp:SecurityToken
IncludeInMessage="true"
TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-2004-01-saml-token-profile-1.0#SAMLAssertionID">
<wssp:Claims>
<wssp:ConfirmationMethod>holder-of-key</wssp:ConfirmationMethod>
</wssp:Claims>
</wssp:SecurityToken>
</wssp:SupportedTokens>
</wssp:Integrity>
</wsp:Policy>

2つのSAML確認メソッド(sender-vouchesまたはholder-of-key)の詳細は、『Oracle WebLogic Serverのセキュリティについて』のWebLogic WebサービスでのSAMLトークン・プロファイルのサポートに関する項を参照してください。

DigestAlgorithm

SOAPメッセージの指定部分にデジタル署名する際に使用するダイジェスト・アルゴリズムを指定します。暗号化するSOAPメッセージの一部を指定するには、<MessageParts>兄弟要素を使用します。詳細は、「MessageParts」を参照してください。

表6-3 <DigestAlgorithm>の属性

の属性" width="100%">

属性

説明

必須?

URI

SOAPメッセージの指定部分にデジタル署名する際に使用するダイジェスト・アルゴリズム。

指定できるのは以下のダイジェスト・アルゴリズムのみです。

http://www.w3.org/2000/09/xmldsig#sha1

はい

EncryptionAlgorithm

SOAPメッセージの指定部分を暗号化する際に使用する暗号化アルゴリズムを指定します。暗号化するSOAPメッセージの一部を指定するには、<MessageParts>兄弟要素を使用します。詳細は、「MessageParts」を参照してください。

表6-4 <EncryptionAlgorithm>の属性

の属性" width="100%">

属性

説明

必須?

URI

SOAPメッセージの指定部分を暗号化する際に使用する暗号化アルゴリズム。

有効な値は以下のとおりです。

http://www.w3.org/2001/04/xmlenc#tripledes-cbc
http://www.w3.org/2001/04/xmlenc#kw-tripledes
http://www.w3.org/2001/04/xmlenc#aes128-cbc

WebLogic Workshop 8.1でビルドしたWebサービス間で相互運用する場合は、暗号化アルゴリズムとしてhttp://www.w3.org/2001/04/xmlenc#aes128-cbcを指定する必要があります。

はい

Identity

認証用にサポートされているセキュリティ・トークンのタイプ(ユーザー名、X.509、またはSAML)を指定します。

この要素には属性はありません。

整合性

SOAPメッセージのデジタル署名に使用するアルゴリズムやキーに加え、SOAPメッセージの一部または全部にデジタル署名するように指定します。

たとえば、Webサービスで、SOAPメッセージの本文全体にデジタル署名する必要があり、SHA1とRSAキーを使用したアルゴリズムのみを受け付ける場合などです。

表6-5 <Integrity>の属性

の属性" width="100%">

属性

説明

必須?

SignToken

SOAPメッセージの指定部分に加え、<Integrity>の<SecurityToken>子要素で指定したセキュリティ・トークンにもデジタル署名するかどうかを指定します。

この属性の有効な値は、trueおよびfalseです。デフォルト値はtrueです。

いいえ

SupportTrust10

.

この属性の有効な値は、trueおよびfalseです。デフォルト値はfalseです。

いいえ

X509AuthConditional

IDアサーションで、X.509トークンをサポートされるトークン・リストに含める場合は、ポリシーにもIntegrityアサーションを含める必要があります。X.509トークンがデジタル署名で使用されていない場合、サーバーはX.509トークンを認証の証拠として受け入れません。

IDアサーションがその他のトークン・タイプを受け入れる場合、IntegrityアサーションのX509AuthConditional属性を使用して、実際の認証トークンがX.509トークンの場合のみ、デジタル署名を必要とすることを指定できます。抽象IDアサーションは、デプロイ時にあらかじめ処理されており、実行時環境によってサポートされているすべてのトークン・タイプのリストを挿入することで、具象アサーションに変換されます。

いいえ

KeyInfo

暗号化用のセキュリティ・トークンを指定するために使用します。

この要素には属性はありません。

KeyWrappingAlgorithm

メッセージの暗号化キーを暗号化するために使用するアルゴリズムを指定します。

表6-6 <KeyWrappingAlgorithm>の属性

の属性" width="100%">

属性

説明

必須?

URI

SOAPメッセージの暗号化キーを暗号化するために使用するアルゴリズム。

有効な値は以下のとおりです。

- http://www.w3.org/2001/04/xmlenc#rsa-1_5
(RSA-v1.5アルゴリズムを指定する場合)

- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
(RSA-OAEPアルゴリズムを指定する場合)

はい

Label

セキュリティ・コンテキスト・トークンのラベルを指定します。WS-SecureConversationセキュリティ・コンテキストを構成する際に使用します。

この要素には属性はありません。

Length

セキュリティ・コンテキスト・トークンおよび派生キー・トークンを使用する場合のキーの長さを指定します。このアサーションは、WS-SecureConversationセキュリティ・コンテキストにのみ適用されます。

デフォルト値は32です。

この要素には属性はありません。

MessageAge

SOAPメッセージが有効期限切れになり、破棄されるまでの期間を指定します。

このセキュリティ・アサーションをセキュリティ・ポリシー・ファイルに含めると、Webサービス・ランタイムは、セキュリティ・ポリシー・ファイルが関連付けられている方向(着信、発信、またはその両方)に応じて、リクエストまたはレスポンスのSOAPメッセージに<Timestamp>ヘッダーを追加します。<Timestamp>ヘッダーは、メッセージの有効期限を、SOAPメッセージの宛先に対して示すものです。

たとえば、セキュリティ・ポリシー・ファイルに、次のような<MessageAge>アサーションが含まれていると仮定します。

<wsp:Policy
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wssp="http://www.bea.com/wls90/security/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
>
...
<wssp:MessageAge Age="300" />
</wsp:Policy>

The resulting generated SOAP message will have a <Timestamp> header similar to the following excerpt:
<wsu:Timestamp
wsu:Id="Dy2PFsX3ZQacqNKEANpXbNMnMhm2BmGOA2WDc2E0JpiaaTmbYNwT"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsu:Created>2005-11-09T17:46:55Z</wsu:Created>
<wsu:Expires>2005-11-09T17:51:55Z</wsu:Expires>
</wsu:Timestamp>

この例において、SOAPメッセージの宛先では、2005-11-09T17:51:55Z、つまりメッセージ作成から5分後以降に受信されたメッセージが破棄されます。

Webサービス・ランタイムは、SOAPメッセージ生成時に、<Created>ヘッダーをSOAPメッセージが作成された時刻に設定し、<Expires>ヘッダーを、<MessageAge>アサーションのAge属性の値を作成時刻に加算したものに設定します。

次の表では、<MessageAge>アサーションの属性について説明します。

表6-7 <MessageAge>の属性

の属性" width="100%">

属性

説明

必須?

Age

SOAPメッセージの実際にタイムアウトになるまでの期間(秒)を指定します。

いいえ

次の表では、WebLogic Webサービス・セキュリティ・ランタイムのタイムスタンプ動作を記述するプロパティを、そのデフォルト値とともにリストしています。

表6-8 タイムスタンプ動作プロパティ

プロパティ

説明

デフォルト値

クロックを同期

Webサービスで同期化されたクロックを前提とするかどうかを指定します。

true

クロック精度

クロックが同期化されている場合に、同期の精度を表します。

注意: このプロパティは、リリース9.2のWebLogic Webサービスでは非推奨です。かわりに、「クロック・スキュー」プロパティを使用します。両方のプロパティが設定されている場合は、「クロック・スキュー」プロパティが優先されます。

60000ミリ秒

クロックのずれ

メッセージの送信側と受信側の間で許容する差異(ミリ秒)を指定します。

60000ミリ秒

厳密でない精度

クロック精度プロパティの適用方法を緩和できます。

注意: このプロパティは、リリース9.2のWebLogic Webサービスでは非推奨です。かわりに、「クロック・スキュー」プロパティを使用します。

false

最大処理遅延

受信メッセージの鮮度のポリシーを指定します。

-1

有効期間

送信側で発信メッセージが有効であることを要求する時間の長さを表します。

60秒

通常、前述のタイムスタンプ・プロパティに変更を加える必要が生じることはありません。しかし、実際に必要になった場合は、default_wss Webサービス・セキュリティ構成がまだ存在していなければ、管理コンソールを使用してそれを作成し、その後「タイムスタンプ」タブをクリックして、タイムスタンプ構成を更新する必要があります。タスクの詳細はWebサービス・セキュリティ構成の作成に関する項を、これらのタイムスタンプ・プロパティの詳細なリファレンス情報については、Oracle WebLogic Server管理コンソール・ヘルプのドメイン: Webサービス・セキュリティ: タイムスタンプに関する項を参照してください。

MessageParts

要素のSOAPメッセージにおける、署名または暗号化されるべきSOAPメッセージの部分を、その要素の祖父要素が何であるかに応じて指定します。SOAPメッセージの部分指定を行うには、このアサーション内でXPath 1.0式または一連のあらかじめ定義された関数のいずれかを使用できます。

MessagePartsアサーションは常に、Targetアサーションの子となります。Targetアサーションは、Integrityアサーション(SOAPメッセージに対するデジタル署名の方法を指定)またはConfidentialityアサーション(SOAPメッセージに対する暗号化の方法を指定)のいずれかの子とすることができます。

このアサーションの使い方の詳細と、様々なサンプルについては、「MessagePartsを使用した暗号化または署名を必要とするSOAPメッセージの部分指定」を参照してください。

表6-9 <MessageParts>の属性

の属性" width="100%">

属性

説明

必須?

Dialect

SOAPメッセージにおける、署名または暗号化されるべき部分の認識に使用される固有言語を識別します。この属性を指定しない場合、XPath 1.0が使用されます。

この属性の値は以下のいずれかにします。

- http://www.w3.org/TR/1999/REC-xpath-19991116 :署名または暗号化されるべき部分を指定するために、SOAPメッセージに対してXPath 1.0式を使用することを指定します。

- http://schemas.xmlsoap.org/2002/12/wsse#part : SOAP本文全体に署名または暗号化を行うことを指定するために使用される、便利な固有言語。

- http://www.bea.com/wls90/security/policy/wsee#part : WebLogic固有のヘッダーに署名または暗号化を行うことを指定するための、便利な固有言語。また、この言語を使用すると、QNamesを使って、セキュリティ・ヘッダーにおける署名または暗号化されるべき部分を指定できます。

これらの言語の使用例については、「MessagePartsを使用した暗号化または署名を必要とするSOAPメッセージの部分指定」を参照してください。

はい

SecurityToken

親要素によって、認証、暗号化、またはデジタル署名のいずれかで使用できるセキュリティ・トークンを指定します。

たとえば、この要素が<Identity>親要素で定義されている場合、Webサービスを呼び出したクライアント・アプリケーションは、SOAPリクエストにセキュリティ・トークンをアタッチする必要があります。Webサービスによっては、機密データにアクセスできるようにするために、クライアント・アプリケーションが、信頼性のある認証局によって発行されたSAML認証トークンを提示することを求められる場合もあります。この要素が<Confidentiality>の一部の場合、暗号用のトークンが指定されます。

特定のタイプのセキュリティ・トークンは、親要素に加え、TokenType属性の値によって決まります。

セキュアな会話のセキュリティ・トークンの存続期間は、デフォルトでは12時間です。このデフォルト値を変更するには、「Claims」の説明に従って、<TokenLifeTime>子要素を含む<Claims>子要素を追加します。

表6-10 <SecurityToken>の属性

の属性" width="100%">

属性

説明

必須?

DerivedFromTokenType

派生元のセキュリティ・トークンを指定します。たとえば、「http://schemas.xmlsoap.org/ws/2005/02/sc/sct」の値は、セキュアな会話トークンの古いバージョンから派生することを示します。

いいえ

IncludeInMessage

SOAPメッセージにトークンを格納するかどうかを指定します。

有効な値は、trueまたはfalseです。

この属性のデフォルト値は、<Confidentiality>アサーションで使用する場合はfalse、<Integrity>アサーションで使用する場合はtrueです。

この属性の値は、<Identity>アサーションで使用する場合は、明示的にfalseに設定したとしても、常にtrueです。

いいえ

TokenType

セキュリティ・トークンのタイプを指定します。有効な値は以下のとおりです。

- http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3 (バイナリX.509トークンの指定用)

- http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken (ユーザー名トークンの指定用)

- http://docs.oasis-open.org/wss/2004/01/oasis-2004-01-saml-token-profile-1.0#SAMLAssertionID (SAMLトークンの指定用)

はい

SecurityTokenReference

内部使用のみに対応しています。

このセキュリティ・アサーションは、絶対にカスタム・セキュリティ・ポリシー・ファイルに含めないようにしてください。この節での説明は、情報提供のみを目的としています。WebLogic Webサービス・ランタイムは、デプロイ済みのWebサービスの動的WSDLでパブリッシュされているセキュリティ・ポリシー・ファイルに、このセキュリティ・アサーションを自動的に挿入します。このセキュリティ・アサーションは、WebLogic Serverの公開鍵を指定するものです。Webサービスを呼び出すクライアント・アプリケーションがその後、それを使用して、セキュリティ・ポリシー・ファイルで指定されたSOAPメッセージの各部分を暗号化します。Webサービス・ランタイムが次に、サーバーの秘密鍵を使用して、メッセージを復号化します。

SignatureAlgorithm

デジタル署名の計算に使用する暗号アルゴリズムを指定します。

表6-11 <SignatureAlgorithm>の属性

の属性" width="100%">

属性

説明

必須?

URI

署名の計算に使用する暗号アルゴリズムを指定します。

注意:社内で使用している証明書と互換性のあるアルゴリズムを必ず指定してください。

有効な値は以下のとおりです。

http://www.w3.org/2000/09/xmldsig#rsa-sha1
http://www.w3.org/2000/09/xmldsig#dsa-sha1

はい

SupportedTokens

親要素によって、認証、暗号化、またはデジタル署名のいずれかで使用できるセキュリティ・トークンのリストを指定します。

この要素には属性はありません。

Target

親要素によって、暗号化またはデジタル署名するSOAPメッセージのターゲットに関する情報をカプセル化します。

子要素も、親要素によって異なります。たとえば、<Integrity>で使用する場合は、<DigestAlgorithm>、<Transform>、および<MessageParts>子要素を指定できます。<Confidentiality>で使用する場合は、<EncryptionAlgorithm>、<Transform>、および<MessageParts>子要素を指定できます。

1つまたは複数のターゲットを指定できます。

表6-12 <Target>の属性

の属性" width="100%">

属性

説明

必須?

encryptContentOnly

要素全体を暗号化するか、その内容のみを暗号化するかを指定します。

この属性は、<Target>が<Confidentiality>の子要素である場合にのみ指定できます。

この属性のデフォルト値はtrueで、内容のみが暗号化されます。

いいえ

TokenLifeTime

セキュリティ・コンテキスト・トークンまたは派生キー・トークンの存続期間(秒)を指定します。この要素は、WS-SecurityConversationセキュリティ・コンテキストを構成する場合にのみ使用します。

セキュリティ・トークンのデフォルトの存続期間は12時間(43,200秒)です。

この要素には属性はありません。

Transform

親要素によって、電子署名または暗号化されるSOAPメッセージの一部に適用されるトランスフォーメーション・アルゴリズムのURIを指定します。

0個以上の任意の数のトランスフォーメーションを指定できます。指定したトランスフォーメーションは、<Target>親要素で指定されている順序で実行されます。

表6-13 <Transform>の属性

の属性" width="100%">

属性

説明

必須?

URI

トランスフォーメーション・アルゴリズムのURIを指定します。

有効なURIは次のとおりです。

- http://www.w3.org/2000/09/xmldsig#base64 (Base64デコード変換)

- http://www.w3.org/TR/1999/REC-xpath-19991116 (XPathフィルタ処理)

これらの変換アルゴリズムの詳細は、http://www.w3.org/TR/xmldsig-core/#sec-TransformAlgにある「XML-Signature Syntax and Processing」を参照してください。

はい

UsePassword

プレーン・テキストかパスワードのダイジェストかをSOAPメッセージに表示するように指定します。この要素は、ユーザー名トークンでのみ使用されます。

表6-14 <UsePassword>の属性

の属性" width="100%">

属性

説明

必須?

Type

パスワードのタイプを指定します。有効な値は以下のとおりです。

- http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText : SOAPメッセージでクリア・テキスト・パスワードを使用するように指定します。

- http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest : SOAPメッセージでパスワード・ダイジェストを使用するように指定します。

注意:下位互換性を保つため、前述の2つのURIは、先頭に「www.」を付けても指定できます。例:

- http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText

- http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest

はい

MessagePartsを使用した暗号化または署名を必要とするSOAPメッセージの部分指定

セキュリティ・ポリシー・ファイルでIntegrityまたはConfidentialityアサーションのいずれかを使用する場合、Target子アサーションも使用して、デジタル署名または暗号化を行うSOAPメッセージのターゲットを指定することが求められます。Targetアサーションでは、MessageParts子アサーションを使用して、SOAPメッセージにおいて実際にデジタル署名または暗号化されるべき部分を指定することが必要です。この項では、MessagePartsアサーションの様々な使い方を説明します。

Confidentialityアサーション内でMessagePartsアサーションを使用する詳細なセキュリティ・ポリシー・ファイルの例については、「セキュリティ要素のあるポリシー・ファイルの例」を参照してください。この例では、SOAPメッセージの本文全体と、Assertionセキュリティ・ヘッダーが、ともに暗号化されるように指定する方法を示します。

MessagePartsのDialect属性を使用し、SOAPメッセージの各部分の識別に使用される固有言語を指定します。WebLogic Webサービス・セキュリティ・ランタイムでは、次の3つの固有言語をサポートしています。

- XPath 1.0

- 定義済みのwsp:Body()関数

- WebLogic固有のHeader関数

必ず、メッセージ保護されたWebサービスのクライアント呼出しの結果として生じたSOAPメッセージ内に実際に存在するメッセージの一部を指定するようにしてください。セキュリティ・ポリシー・ファイルが署名または暗号化される部分として示している部分を含まない着信SOAPメッセージに遭遇した場合、Webサービス・セキュリティ・ランタイムはエラーを戻し、呼出しは失敗します。唯一の例外としては、WebLogic固有のwls:SystemHeader()関数を使用してSOAPメッセージ中の任意のWebLogic固有のSOAPヘッダーに対し署名または暗号化を行うと指定した場合に、SOAPメッセージ内にこれらのヘッダーがまったく見つからなければ、Webサービス・セキュリティ・ランタイムはただ呼出しを続行し、エラーを戻すことはしません。

XPath 1.0

この固有言語では、XPath 1.0式を使用して、SOAPメッセージにおける署名または暗号化されるべき部分を指定できます。この固有言語を有効化するDialect属性の値は、http://www.w3.org/TR/1999/REC-xpath-19991116です。

通常、SOAPメッセージにおける暗号化またはデジタル署名されるべき部分は、soap:Body要素、soap:Header要素のいずれかの子要素であると指定する必要があります。このため、パラメータとしてXPath式を取る以下の2つの関数が用意されています。

- wsp:GetBody(xpath_expression) - XPath式が検索を開始するルート要素をsoap:Bodyと指定します。

- wsp:GetHeader(xpath_expression) - XPath式が検索を開始するルート要素をsoap:Headerと指定します。

また、前述の関数の1つを使わず、MessagePartsアサーションのコンテンツとして簡素なXPath式を使用することもできます。この場合、XPath式が検索を開始するルート要素はsoap:Envelopeとなります。

次の例では、ネームスペース接頭辞n1を持ち、SOAPメッセージ本文の中に入っているAddInt部分に対して署名を行うか暗号化を行うかを、親TargetがIntegrityアサーションの子であるかConfidentialityアサーションの子であるかに応じて指定しています。

<wssp:MessageParts
Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"
xmlns:n1="http://www.bea.com/foo">
wsp:GetBody(./n1:AddInt)
</wssp:MessageParts>

上の例では、XPath式で指定された部分のネームスペース(この例ではn1)が、セキュリティ・ポリシー・ファイルの別の場所で定義済みでなければ、MessagePartsアサーションに対する属性としてそれを定義する必要があることを示しています。

以下の例は、前述のものに似ています。ただし、署名または暗号化される部分は、wsee:Securityの子要素であり、SOAPメッセージ・ヘッダー内に入っている、wsu:Timestampです。

<wssp:MessageParts
Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116">
wsp:GetHeader(./wsse:Security/wsu:Timestamp)
</wssp:MessageParts>

前述の例では、wsee:およびwse:ネームスペースが、セキュリティ・ポリシー・ファイルの別の場所で定義済みであることが前提となっています。

注意:
XPath式の作成方法については、このドキュメントでは対応していません。詳細は、http://www.w3.org/TR/xpath仕様にある「XML Path Language (XPath), Version 1.0」を参照してください。

定義済みのwsp:Body()関数

「XPath 1.0」で説明したXPath固有言語は、SOAPメッセージにおける暗号化または署名されるべき任意の部分を正確に特定するのに十分な柔軟性を備えています。しかし場合によっては、単にSOAPメッセージ本文全体に対する署名または暗号化の指定が必要なこともあります。この場合、XPath式を使用すると、過度に複雑になってしまうので、次の例に示すように、この目的のためだけにあらかじめ定義されているwsp:Body()関数を使用することをお薦めします。

<wssp:MessageParts
Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">
wsp:Body()
</wssp:MessageParts>

WebLogic固有のHeader関数

Oracleでは、WebLogicセキュリティまたはシステムのヘッダーの一部または全部に対する署名または暗号化を簡単に指定するための、一連の関数をあらかじめ定義した、独自の固有言語を提供しています。XPath固有言語でも同じ目的を果たすことができますが、このWebLogic固有言語を使用する方が、ずっと簡単です。この固有言語は、Dialect属性をhttp://www.bea.com/wls90/security/policy/wsee#partに設定することによって、有効化されます。

wls:SystemHeaders()関数は、すべてのWebLogic固有ヘッダーに対する署名または暗号化を指定します。これらのヘッダーは、信頼性のあるメッセージングやアドレッシングなど、様々な機能に関して、WebLogic Webサービス・ランタイムで内部的に使用されます。ヘッダーは次のとおりです。

- wsrm:SequenceAcknowledgement

- wsrm:AckRequested

- wsrm:Sequence

- wsa:Action

- wsa:FaultTo

- wsa:From

- wsa:MessageID

- wsa:RelatesTo

- wsa:ReplyTo

- wsa:To

- wsax:SetCookie

以下の例では、wls:SystemHeader()関数の使い方を示します。

<wssp:MessageParts
Dialect="http://www.bea.com/wls90/security/policy/wsee#part">
wls:SystemHeaders()
</wssp:MessageParts>

セキュリティ・ヘッダーにおける署名または暗号化されるべき特定の部分を指定するには、以下の例に示すように、wls:SecurityHeader(header)関数を使用します。

<wssp:MessageParts
Dialect="http://www.bea.com/wls90/security/policy/wsee#part">
wls:SecurityHeader(wsa:From)
</wssp:MessageParts>

この例では、wsa:Fromセキュリティ・ヘッダーのみが署名または暗号化されます。wls:SecurityHeader()関数に対しては、前述のヘッダーのリストのうち任意のものを指定できます。

7 WebLogic Webサービス・デプロイメント記述子要素のリファレンス

この章では、WebLogic Webサービス・デプロイメント記述子ファイルweblogic-webservices.xmlに関する情報を提供します。

この章の内容は以下のとおりです。

- weblogic-webservices.xmlの概要

- グラフィカルな表現

- XMLスキーマ

- weblogic-webservices.xmlデプロイメント記述子ファイルの例

- 要素の説明

weblogic-webservices.xmlの概要

Webサービスの標準Java EEデプロイメント記述子はwebservices.xmlです。このファイルは、WebLogic ServerにデプロイされるWebサービスのセット、およびコンテナ・リソースとその他のサービスに対する依存関係を指定します。このファイルの詳細は、WebサービスXMLスキーマ(http://java.sun.com/xml/ns/j2ee/j2ee_web_services_1_1.xsd)を参照してください。

標準のJava EE webservices.xmlデプロイメント記述子ファイルと同じ役割を持つWebLogicデプロイメント記述子ファイルがweblogic-webservices.xmlです。このファイルには、デプロイされたWebサービスの呼出しに使用するURLや、タイムアウト値などの構成設定など、WebLogic Webサービスに関するWebLogic固有の情報が格納されます。

この2つのデプロイメント記述子ファイルは、Webサービスを格納しているJava EEアーカイブの同じ場所にあります。具体的には、次のとおりです。

- Javaクラスを実装したWebサービスの場合、WebサービスはWebアプリケーションWARファイルとしてパッケージ化され、デプロイメント記述子はWEB-INFディレクトリに格納されます。

- ステートレス・セッションEJB実装Webサービスの場合、WebサービスはEJB JARファイルとしてパッケージ化され、デプロイメント記述子はMETA-INFディレクトリに格納されます。

weblogic-webservices.xmlファイルの構造は、アーカイブ内に格納されているWebサービスをどのようにリストして識別するかという点でJava EE webservices.xmlファイルの構造と似ています。たとえば、どちらのファイルも、アーカイブ内の各Webサービスに対して、対応するルート要素(Java EE webservices.xmlファイルの場合は<webservices>、weblogic-webservices.xmlファイルの場合は<weblogic-webservices>)の<webservice-description>子要素を持っています。

この節の説明は、情報提供のみを目的としています。通常、構成の更新は、管理コンソールまたはJWSアノテーションを使用して行います。どちらのデプロイメント記述子ファイルも直接編集する必要はありません。

注意:
weblogic-webservices.xmlファイルの2つの要素(login-configとtransport-guarantee)のデータ型定義が、web.xmlファイルのJ2EEスキーマからインポートされます。この2つの要素とデータ型の詳細は、http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsdにある「サーブレット・デプロイメント記述子スキーマ」を参照してください。

グラフィカルな表現

以下の図では、weblogic-webservices.xmlデプロイメント記述子ファイルの要素の階層構造を示します。

図7-1 weblogic-webservices.xmlの要素階層

「図7-1 weblogic-webservices.xmlの要素階層」の説明

図7-2 weblogic-webservices.xmlの要素階層(続き)

「図7-2 weblogic-webservices.xmlの要素階層(続き)」の説明

XMLスキーマ

weblogic-webservices.xmlデプロイメント記述子を説明するXMLスキーマ・ファイルについては、http://xmlns.oracle.com/weblogic/weblogic-webservices/1.1/weblogic-webservices.xsdを参照してください。

weblogic-webservices.xmlデプロイメント記述子ファイルの例

以下に、単純なweblogic-webservices.xmlデプロイメント記述子の例を示します。

<?xml version='1.0' encoding='UTF-8'?>
<weblogic-webservices
xmlns="http://xmlns.oracle.com/weblogic/weblogic-webservices">
<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>
<wsat-config>
<version>WSAT10</version>
<flowType>SUPPORTS</flowType>
</wsat-config>
<reliability-config>
<inactivity-timeout>P0DT600S</inactivity-timeout>
<base-retransmission-interval>P0DT3S</base-retransmission-interval>
<retransmission-exponential-backoff>true
</retransmission-exponential-backoff>
<acknowledgement-interval>P0DT3S</acknowledgement-interval>
<sequence-expiration>P1D</sequence-expiration>
<buffer-retry-count>3</buffer-retry-count>
<buffer-retry-delay>P0DT5S</buffer-retry-delay>
</reliability-config>
</port-component>
</webservice-description>
</weblogic-webservices>

要素の説明

次の項では、weblogic-webservices.xmlデプロイメント記述子ファイルの各要素について説明します。

acknowledgement-interval

<reliability-config>要素の<acknowledgement-interval>子要素は、宛先エンドポイントがスタンドアロンの確認応答を送信しなければならない最大間隔を指定します。

宛先エンドポイントは、ソース・エンドポイントからメッセージを受信した直後に、返されたメッセージに対する確認応答を送信できます。また、スタンドアロンの確認応答として個別に確認応答を送信することもできます。返されたメッセージに対して確認応答を送信できない場合、宛先エンドポイントは、スタンドアロンの確認応答を送信するまで、確認応答の間隔に設定した時間範囲内で待機することがあります。未確認メッセージがない場合、宛先エンドポイントは確認応答を送信しない可能性があります。

この値は、次のようなXMLスキーマの期間を表す字句形式に従った正の値でなければなりません。

PYMDTHS

次の表では、期間形式フィールドについて説明します。

表7-1 期間形式の説明

フィールド

説明

nY

年数(n)

nM

月数(n)

nD

日数(n)

T

日付/時刻のセパレータ

nH

時間数(n).

nM

分数(n).

nS

秒数(n)

この値のデフォルトはP0DT3S (3秒)です。

base-retransmission-interval

<reliability-config>要素の<base-retransmission-interval>子要素は、RM宛先にメッセージの再送信を行うまでの時間間隔を指定します。

ソース・エンドポイントが、指定した間隔内で所定のメッセージの確認応答を受信しなかった場合、ソース・エンドポイントはメッセージを再送信します。ソース・エンドポイントは、メッセージのシーケンスの存続期間内の任意の時点で、この再送信間隔を変更することがあります。

この要素を<retransmission-exponential-backoff>要素と組み合せて使用すると、再送信間隔を調整するアルゴリズムを指定できます。

この値は、次のようなXMLスキーマの期間を表す字句形式に従った正の値でなければなりません。

PYMDTHS

期間の形式については、「表7-1」を参照してください。この値のデフォルトはP0DT3S(3秒)です。

buffer-retry-count

<reliability-config>要素の<buffer-retry-count>子要素は、宛先のWebLogic ServerインスタンスのJMSキューが、信頼性のある操作を呼び出すクライアントからWebサービスの実装にメッセージを配信する際の再試行回数を指定します。この値のデフォルトは3です。

buffer-retry-delay

<reliability-config>要素の<buffer-retry-delay>子要素は、メッセージ配信の再試行間隔を指定します。再試行間隔は、JMSキューにあるクライアントのリクエスト・メッセージとWebサービスの実装へのメッセージ配信までの間隔。

この値は、次のようなXMLスキーマの期間を表す字句形式に従った正の値でなければなりません。

PYMDTHS

期間の形式については、「表7-1」を参照してください。この値のデフォルトはP0DT5S(5秒)です。

callback-protocol

<port-component>要素の<callback-protocol>子要素は、イベントをクライアントに通知するコールバックに使用されるプロトコルを指定します。有効な値は、http、https、またはjmsです。

deployment-listener-list

内部使用のみに対応しています。

deployment-listener

内部使用のみに対応しています。

exposed

<wsdl>要素の<exposed>子要素は、Webサービスのデプロイ時にWSDLをパブリックに公開するかどうかを示すブール属性です。

flowType

<wsat-config>要素の<flowtype>子要素は、Webサービス原子性トランザクション調整コンテキストがトランザクション・フローとともに渡されるかどうかを指定します。

有効な値は、NEVER、SUPPORTSおよびMANDATORYです。デフォルト値はSUPPORTSです。これらの値とその意味、および@TransactionAttributeアノテーションを使用するEJB型のWebサービスに対してWebサービス原子性トランザクションを構成する際の有効な値の組合せの詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のWebサービスに対するWebサービス原子性トランザクションの有効化に関する項でフロー・タイプの値をまとめた表を参照してください。

Webサービス原子性トランザクションの詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のWebサービス原子性トランザクションの使用に関する項を参照してください。

http-flush-response

<port-component>要素の<http-flush-response>子要素は、信頼性のあるレスポンスをフラッシュするかどうかを指定します。この値のデフォルトはtrueです。

http-response-buffersize

<port-component>要素の<http-response-buffersize>子要素は、サーバーでのリクエストのキャッシュに使用される信頼性のあるレスポンス・バッファのサイズを指定します。この値のデフォルトは0です。

login-config

<j2ee:login-config>要素は、使用する認証方式、このアプリケーションで使用されるレルムの名前、およびフォームによるログイン機能で必要になる属性を指定します。

<j2ee:login-config>要素のXMLスキーマ・データ型は<j2ee:login-configType>で、標準web.xmlデプロイメント記述子を記述するJava EEスキーマで定義されます。詳細なリファレンス情報については、「http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd」を参照してください。

inactivity-timeout

<reliability-config>要素の<inactivity-timeout>子要素は、非アクティブ間隔を指定します。指定した間隔で、エンドポイント(RM送信元とRM宛先)がアプリケーションのメッセージまたは制御メッセージを受け取らなければ、エンドポイントはRMシーケンスが非アクティブなため終了したものと見なす場合があります。

この値は、次のようなXMLスキーマの期間を表す字句形式に従った正の値でなければなりません。

PnYnMnDTnHnMnS

期間の形式については、「表7-1」を参照してください。この値のデフォルトはP0DT600S(600秒)です。

mbean-name

<webservice-security>要素の<mbean-name>子要素は、デプロイメント記述子ファイルで記述されているWebサービスに関連付けられたWebサービス・セキュリティ構成(WebserviceSecurityMBeanをインスタンス化したもの)の名前を指定します。デフォルト構成名はdefault_wssです。

関連付けられたセキュリティ構成では、IDの認証にX.509証明書を使用するかどうか、パスワード・ダイジェストを使用するかどうか、暗号化やデジタル署名にキーストアを使用するかどうかなどを指定します。

Webサービスを問題なく呼び出すことができるようにするには、管理コンソールであらかじめセキュリティ構成(デフォルト構成も含む)を作成しておく必要があります。

注意:
この要素で記述されるWebサービス・セキュリティ構成は、weblogic-webservices.xmlファイルに格納されているすべてのWebサービスに適用されます。jwsc Antタスクは、必ず専用のJARまたはWARファイルにWebサービスをパッケージ化するので、常にjwsc Antタスクを使用してWebサービスを生成する場合、この制限は問題となりません。ただし、weblogic-webservices.xmlデプロイメント記述子を手動で更新してWebサービスの記述を追加する場合、サービスによって異なるセキュリティ構成を関連付けることはできません。

name

<operation>要素の<name>子要素は、Webサービス操作の名前を定義します。

operation

<operation>要素は、Webサービス操作の特性を定義します。<operation>要素の子要素は、Webサービス操作の名前および構成オプションを定義します。

port-component

<port-component>要素は、Webサービスのポートの記述に使用する他の要素のホルダーです。<port-component>要素の子要素では、WebLogic ServerにデプロイされたWebサービスの呼出しに使用するコンテキスト・パスおよびサービスURIなど、WebサービスのポートのWebLogic固有の特性を指定します。

port-component-name

<port-component>要素の<port-component-name>子要素は、WSDLポートの内部名を指定します。この要素の値は、単一のweblogic-webservices.xmlファイル内にあるすべての<port-component-name>要素に対して一意のものである必要があります。

reliability-config

<reliability-config>要素は、信頼性のあるメッセージングの構成要素をグループ化します。<reliability-config>要素の子要素は、信頼性のあるメッセージングの再送信間隔やタイムアウト間隔など、実行時構成値を指定します。

retransmission-exponential-backoff

<reliability-config>要素の<retransmission-exponential-backoff>子要素は、メッセージの再送信の間隔を、指数関数的なバックオフ・アルゴリズムを使用して調整するかどうかを指定するブール属性です。

この要素は、<base-retransmission-interval>と一緒に使用します。宛先エンドポイントが、<base-retransmission-interval>で指定した時間間隔でメッセージのシーケンスを確認応答しなかった場合、メッセージが引続き確認されなければ、連続再送信のタイミングに対して、ソース・エンドポイントは指数関数的なバックオフ・アルゴリズムを使用します。

指数関数的なバックオフ・アルゴリズムは、連続再送信の間隔が、基本の再送信間隔を基に指数的に増えるように指定します。たとえば、基本の再送信間隔が2秒で、指数関数的なバックオフ要素が設定されている場合、連続再送信の間隔は、メッセージが確認されなければ、2、4、8、16、32秒というように増えていきます。

デフォルト値はfalseであり、連続再送信の間隔は指数的に増えず、同じ値が維持されます。

sequence-expiration

<reliability-config>要素の<sequence-expiration>子要素は、アクティビティにかかわらず、シーケンスが期限切れになるまでの時間を指定します。

この値は、次のようなXMLスキーマの期間を表す字句形式に従った正の値でなければなりません。

PnYnMnDTnHnMS

期間の形式については、「表7-1」を参照してください。この値のデフォルトはP1D(1日)です。

service-endpoint-address

<service-endpoint-address>要素は、Webサービス・エンドポイントのアドレスを構成するWebLogic固有のコンテキスト・パスとサービスURIの値、またはWebLogic ServerにデプロイされたWebサービスを呼び出すURLをグループ化します。

これらの値は、<webservice-contextpath>子要素および<webservice-serviceuri>子要素で指定します。

stream-attachments

<port-component>要素の<stream-attachments>子要素は、WebLogic Webサービス・ランタイムで、Webサービスのすべてのメソッド・パラメータを読み取る際にStreaming APIを使用するかどうかを指定するブール値です。これによって、特に画像のようにパラメータが大きい場合に、Webサービス操作の呼出しのパフォーマンスが向上します。

同じWebサービスで次の機能も使用している場合、このアノテーションは使用できません。

- 会話

- 信頼性のあるメッセージング

- JMSトランスポート

- クライアント・アプリケーションと呼出し対象のWebサービスとの間のプロキシ・サーバー

transport-guarantee

j2ee:transport-guarantee要素は、Webサービスを呼び出すクライアント・アプリケーションとWebLogic Serverとの間の通信のタイプを指定します。

この要素の値はNONE、INTEGRAL、CONFIDENTIALのいずれかです。NONEは、アプリケーションがトランスポートの保証を必要としていないことを示します。INTEGRALは、クライアントとサーバーの間で、転送中にデータが変更されない方法でデータを転送する必要があることを示します。CONFIDENTIALは、転送中にデータの中味を覗かれないようにデータを転送する必要があることを示します。ほとんどの場合、INTEGRALフラグまたはCONFIDENTIALフラグは、SSLを使用する必要があることを示します。

j2ee:transport-guarantee要素のXMLスキーマ・データ型はj2ee:transport-guaranteeTypeで、標準web.xmlデプロイメント記述子を記述するJava EEスキーマで定義されます。詳細なリファレンス情報については、「http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd」を参照してください。

transaction-timeout

<port-component>要素の<transaction-timeout>子要素は、Webサービス操作がトランザクションの一部として実行されている場合に、現在のトランザクションのタイムアウト値を指定します。

この値は、次のようなXMLスキーマの期間を表す字句形式に従った正の値でなければなりません。

PnYnMnDTnHnMnS

期間の形式については、「表7-1」を参照してください。この値のデフォルトはP0DT3S(3秒)です。

この値のデフォルトは30秒です。

validate-request

<port-component>要素の<validate-request>子要素は、信頼性のあるリクエストを検証するかどうかを指定するブール値です。

この値は、次のようなXMLスキーマの期間を表す字句形式に従った正の値でなければなりません。

PnYnMnDTnHnMnS

期間の形式については、「表7-1」を参照してください。この値のデフォルトはP0DT3S(3秒)です。

version

<wsat-config>要素の<version>子要素は、Webサービスおよびクライアントに対して使用されるWebサービス原子性トランザクション調整コンテキストのバージョンを指定します。クライアントの場合、アウトバウンド・メッセージに使用されるバージョンのみを指定します。指定した値は、トランザクション全体で一致している必要があります。

有効な値は、WSAT10、WSAT11、WSAT12およびDEFAULTです。WebサービスのDEFAULT値は、(インバウンド・リクエストで起動された)3つのバージョンすべてです。Webサービス・クライアントのDEFAULT値はWSAT10です。

Webサービス原子性トランザクションの詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のWebサービス原子性トランザクションの使用に関する項を参照してください。

weblogic-webservices

<weblogic-webservices>要素は、WebLogic固有のWebサービス・デプロイメント記述子(weblogic-webservices.xml)のルート要素です。

この要素は、Java EEコンポーネント・アーカイブに格納されているWebサービスのセットを指定します(このアーカイブにはデプロイメント記述子も格納されています)。アーカイブは、EJB JARファイル(ステートレス・セッションEJB実装Webサービスの場合)またはWARファイル(Javaクラス実装Webサービスの場合)です。

webservice-contextpath

<webservice-contextpath>要素は、Webサービスの呼出しに使用するURLのコンテキスト・パス部分を指定します。WebLogic ServerにデプロイされたWebサービスを呼び出すURLは次のとおりです。

http://host:port/contextPath/serviceURI

説明:

- hostは、WebLogic Serverが動作しているホスト・コンピュータです。

- portは、WebLogic Serverがリスニングしているポートのアドレスです。

- contextPathは、この要素の値です。

- serviceURIは、 webservice-serviceuri要素の値です。

jwsc Antタスクを使用してJWSファイルからWebサービスを生成する場合、<webservice-contextpath>要素の値は、WebLogic固有の@WLHttpTransportアノテーション、またはjwscの<WLHttpTransport>子要素のcontextPath属性から取得されます。

webservice-description

<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

<webservice-description-name>要素は、Webサービスの内部名を指定します。この要素の値は、単一のweblogic-webservices.xmlファイル内にあるすべての<webservice-description-name>要素に対して一意なものである必要があります。

webservice-security

weblogic-webservices.xmlデプロイメント記述子の要素のうち、セキュリティに関連するものをすべてグループ化するための要素です。

webservice-serviceuri

<webservice-serviceuri>要素は、Webサービスの呼出しに使用するURLのWebサービスURI部分を指定します。WebLogic ServerにデプロイされたWebサービスを呼び出すURLは次のとおりです。

http://host:port/contextPath/serviceURI

説明:

- hostは、WebLogic Serverが動作しているホスト・コンピュータです。

- portは、WebLogic Serverがリスニングしているポートのアドレスです。

- contextPathは、 webservice-contextpath要素の値です。

- serviceURIは、この要素の値です。

jwsc Antタスクを使用してJWSファイルからWebサービスを生成する場合、<webservice-serviceuri>要素の値は、WebLogic固有の@WLHttpTransportアノテーション、またはjwscの<WLHttpTransport>子要素のserviceURI属性から取得されます。

webservice-type

<webservice-type>要素は、WebサービスがJAX-WS標準に基づくか、JAX-RPC標準に基づくかを指定します。有効な値は、JAXWSおよびJAXRPCです。この値のデフォルトはJAXRPCです。

wsat-config

<wsat-config>要素は、クラス・レベルまたは同期メソッド・レベルでWebサービス原子性トランザクションの構成を有効化し、構成します。<wsat-config>要素の子要素は、サポートされているWS-AtomicTransactionのバージョン、およびWebサービス原子性トランザクション調整コンテキストがトランザクション・フローとともに渡されるかどうかを指定します。

Webサービス原子性トランザクションの詳細は、『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のWebサービス原子性トランザクションの使用に関する項を参照してください。

wsdl

weblogic-webservices.xmlデプロイメント記述子の要素のうち、WSDLに関連するものをすべてグループ化するための要素です。

wsdl-publish-file

<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にアクセスする必要がある場合にのみ指定します。『Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のWebサービスのWSDLの参照に関する項で説明しているように、クライアント・アプリケーションは通常、HTTPを使用してWSDLにアクセスします。

この要素の値には、ディレクトリのフルパス名を指定する必要があります。このディレクトリは、WebサービスをデプロイするWebLogic Serverインスタンスまたはクラスタをホストしているすべてのマシンに存在している必要があります。

Copyright © 2007, 2011, Oracle and/or its affiliates. All rights reserved.