Web サービスプロバイダの設計要素は、アプリケーションナビゲータの [コード] の下に表示されます。設計要素は、[基本]、[セキュリティ]、[詳細] の各タブがあるプロパティボックスとエディタペインを備えています。Web サービスの動作部分はコンパイル済みプログラムです。Web サービスには、プログラムインターフェースを反映する WSDL 文書も保持されます。インポートされた WSDL 文書はそのまま保持されます。コーディングの変更がインターフェースに反映される場合、Web サービスの保存時に WSDL 文書は再生成されます。LotusScript Web サービスに対する WSDL 文書が再生成されるとき、WSDL 名になるすべての LotusScript ID は大文字で表わされることに注意してください。これは、LotusScript が大文字小文字を区別しない言語であり、ID 名は内部的に大文字でしか保持されないためです。
Web サービスプロバイダの設計要素は、ロックとロック解除ができます。
プロパティボックスの [基本] タブには、次の項目があります。
Web サービスのセキュリティはエージェントの場合と同じです。
プロパティインフォボックスの [詳細] タブの先頭で、プログラミングモデルと SOAP メッセージ形式を指定します。次のいずれか 1 つの組み合わせを選択します。デフォルト値は [RPC プログラミングモデル]、[Doc/リテラル] 形式です。以下の記述では、指定するオプションがどのように WSDL 文書に反映されるかを説明します。
一般に、データを非直列化して具体的なデータ型にするには、「RPC」を使用します。MOM (メッセージ指向モデル) サービス操作で、データを非直列化して具体的なデータ型にするのではなく、特定のパラメータシグネチャを使用して SOAP 本文から実際の XML メッセージ構文を渡すものには、「メッセージ」を使用します。詳しくは、http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl の「Which style of WSDL should I use?」(著者: Russell Butek) を参照してください。
プロパティボックスの [詳細] タブには、次の項目もあります。
このオプションのデフォルトの設定は有効です。
このオプションは、Doc/リテラル SOAP メッセージ形式で、RPC プログラミングモデルの場合にのみ、使用可能です。その他の形式の場合は、このオプションは使用できません。
Web サービスのエディタペインは Java または LotusScript のコードから構成されます。
単純な場合としては、操作に入力パートではない出力パートがある、Java または LotusScript のコードのパラメータが操作の <wsdl:input> メッセージにマップされる、戻り値が <wsdl:output> メッセージにマップされるなどがあります。それ以外の場合、Java では、インターフェース javax.xml.rpc.holders.Holder (StringHolder、FloatHolder など) を実装するクラスであるパラメータに出力パートと入出力パートがマップされます。LotusScript では同様に、lsxsd.lss (STRING_HOLDER、SINGLE_HOLDER など) に定義されている HOLDER クラスに出力パートと入出力パートがマップされます。
また、操作は呼び出し元にエラーを返すこともあります。WSDL 文書で操作に対して指定された <wsdl:fault> メッセージに対応する障害サブクラスを通じて、または WS_FAULT 基本クラス (LotusScript) または lotus.domino.types.Fault か java.lang.Exception クラス (Java) を直接使用してエラーを返します。
新しい Java Web サービスを作成すると、スケルトン実装クラス Untitled が作成されます。
WSDL 文書を Web サービスにインポートした場合、WSDL の内容に基づいて実装クラスが生成されます。クラスのパブリックプロトタイプメソッド、関数、サブルーチンは、WSDL 文書にある最初の <service> 要素の最初の <port> 要素に対して定義された Web サービス操作に対応します。プロトタイプメソッドで参照されている他のクラスまたは型も、そのパブリックデータメンバーと共に WSDL 文書から生成されることがあります。プロトタイプインターフェースを変更した場合、対応する WSDL 文書は Web サービスの保存時に変更されます。そのような変更をモニターし、防止するには、[WSDL インターフェースの更新を警告] プロパティを使用します。
実装クラスを最初から作成する場合、そのプロトタイプメソッド、関数、サブルーチンによって、WSDL 文書に定義されるメッセージと操作が決まります。