WebLogic Web サービス プログラマーズ ガイド
|
|
この章では、source2wsdd の Javadoc タグについて説明します。
source2wsdd Ant タスクは、ステートレス セッション EJB または Java クラスを使用して実装される WebLogic Web サービスの Java ソース ファイルから web-services.xml デプロイメント記述子ファイルを生成します。web-services.xml デプロイメント記述子ファイルには、1 つまたは複数の WebLogic Web サービスを記述する情報が入っています。この情報には、Web サービスのオペレーションを実装するバックエンド コンポーネント、パラメータおよび戻り値として使用される非組み込みデータ型、SOAP メッセージをインターセプトする SOAP メッセージ ハンドラなどの詳細情報が含まれます。他のすべてのデプロイメント記述子の場合と同様に、web-services.xml も XML ファイルです。
この章では、source2wsdd Ant タスクが web-services.xml ファイルを自動的に生成するために使用する Java ソース ファイルで使用できるオプションの Javadoc タグを説明します。Java ソース ファイルに Javadoc タグがない場合、source2wsdd Ant タスクは要素をファイルに追加するときに最適な推測を行います (Web サービスの名前やエクスポーズすべきオペレーションなど)。ただし、生成される web-services.xml ファイルをより細かく操作する必要がある場合は、source2wsdd Javadoc タグで Web サービスがどのようなものかを正確に指定します。
以下の 3 つの source2wsdd Javadoc タグがあります。
各タグには、それが記述する web-services.xml ファイルの適切な要素に対応する属性のセットがあります。
source2wsdd Ant タスクは、@wlws:webservice タグを使用して、生成された web-services.xml ファイルの <web-service> 要素を設定します。
@wlws:webservice タグは、Web サービスを実装するクラスの Javadoc で指定します。
次の例は、Java クラスをドキュメント化する Javadoc で @wlws:webservice タグを使用する方法を示しています。
/**
* PurchaseOrderService - WebLogic Web サービスのさまざまな機能を
* 見せるサービス
*
* @wlws:webservice
* targetNamespace="http://www.bea.com/po-service/"
* name="PurchaseOrderService"
* portName="POPort"
* portTypeName="POPort"
* protocol="https"
*/
public class POService {
...
}
この例の POService Java クラスは、PurchaseOrderService (@wls:webservice タグの name 属性で指定) という名前の Web サービスを実装するバックエンド コンポーネントです。Web サービスの生成された WSDL の <port> 要素と <portType> 要素は、両方とも POPort です。クライアント アプリケーションは、デフォルトの HTTP ではなく HTTPS を使用して Web サービスにアクセスします。
次の表は、@wlws:webservice タグのすべての属性のリストです。
source2wsdd Ant タスクは、@wlws:operation タグを使用して、生成された web-services.xml ファイルの対応する <operation> 要素を設定します。
デフォルトでは、Web サービスを実装する Java クラスまたは EJB のすべてのパブリック メソッドは、生成された WSDL でオペレーションとしてエクスポーズされます。source2wsdd Ant タスクは、メソッドの情報 (シグネチャなど) を利用して <operation> 要素を設定します。@wlws:operation Javadoc タグを使用すると、デフォルト情報の一部 (オペレーション名など) を変更できます。@wlws:exclude タグを使用すると、パブリック メソッドが Web サービスのオペレーションとしてエクスポーズされないように設定できます。
@wlws:operation タグは、オペレーションを実装するメソッドの Javadoc で指定します。
次の例は、メソッドをドキュメント化する Javadoc で @wlws:operatione タグを使用する方法を示しています。
/**
* 一方向の呼び出し。 クライアントはこのメソッドの呼び出しを
* 待たない
*
* 注意 : 一方向の呼び出しには戻り値の型として void が必要
*
* @wlws:operation
* invocation-style="one-way"
* Name="sendTime"
*/
public void oneWayCall( long time ){
.....
}
この例の oneWayCall メソッドは、sendTime (WSDL でパブリッシュされたオペレーションの名前) という Web サービスのオペレーションを実装します。このオペレーションは一方向です。つまり、クライアント アプリケーションは戻り値を受け取りません。
次の表は、@wlws:operation タグのすべての属性のリストです。
source2wsdd Ant タスクは、@wlws:part タグを利用して、生成された web-services.xml ファイルでオペレーションのパラメータと戻り値を記述する <param> 要素と <return-param> 要素を設定します。
Web サービスを実装する Java クラスまたは EJB のすべてのパブリック メソッドは、生成された WSDL でオペレーションとしてエクスポーズされます。source2wsdd Ant タスクは、メソッドのシグネチャの情報を使用してオペレーションのパラメータと戻り値に関する基本情報を確認します。ただし、このデフォルト情報の一部を変更する必要がある場合は、メソッドの Javadoc で @wlws:part タグを指定します。特に、以下の場合にタグの属性を使用します。
@wlws:part タグは、オペレーションを実装するメソッドの Javadoc で使用します。パラメータの名前は、次のようにタグの直後で属性の前に指定します。
@wlws:part paramName attribute="value"
戻り値を指定するには、次のようにハードコード化された単語 return を使用します。
@wlws:partreturnattribute="value"
次の例は、メソッドをドキュメント化する Javadoc で @wlws:part タグを使用する方法を示しています。
/**
* ヘッダのオペレーション
*
* @wlws:part addressInHeader location="header"
* @wlws:part dataInHeader location="header"
*
* @wlws:part return location="body"
*/
public BaseData methodWithHeaders( String addressInHeader,
int idInBody, BaseData dataInHeader ){
dataInHeader.setAddress( addressInHeader );
dataInHeader.setId( idInBody );
return dataInHeader;
}
この例では、クライアント アプリケーションが methodWithHeaders オペレーションを呼び出すと、addressInHeader と dataInHeader の入力パラメータが SOAP リクエストのヘッダに配置されます。WebLogic Server がオペレーションの呼び出しに応答するときには、戻り値が SOAP 応答の本文に配置されます。
次の表は、@wlws:part タグのすべての属性のリストです。
source2wsdd Ant タスクでは @wlws:exclude タグを使用して、生成された Web サービスのオペレーションのリストから Java ソース ファイルのパブリック メソッドを除外します。
デフォルトでは、Web サービスを実装する Java クラスまたは EJB のすべてのパブリック メソッドは、生成された WSDL でオペレーションとしてエクスポーズされます。パブリック メソッドをエクスポーズしない場合には、そのメソッドの Javadoc に @wlws:exclude タグを明示的に追加する必要があります。
/**
* Web サービスのオペレーションとしてエクスポーズしないパブリック メソッド
*
* @wlws:exclude
*/
public void dontExposeThisMethod(){
}
この例では source2wsdd は、生成された webservices.xml ファイル内の Web サービスのオペレーションのリストに dontExposeThisMethod() パブリック メソッドを追加しません。そのため、このメソッドは生成された WSDL ファイルにも現れません。
|
|
|