4.3.2 サービス部品電文を作成する(Webサービスの場合)

利用するサービス部品が,Cosminexusが提供しているSOAPアプリケーション開発支援機能を使用して作成したSOAPアプリケーションに対応するWebサービスの場合,サービス部品電文のXMLフォーマット定義ファイルを作成する必要はありません。

ただし,SOAPのWSDL生成機能(Java2WSDLコマンド)でWSDLを作成しておく必要があります。Java2WSDLコマンドでWSDLを生成する機能については,マニュアル「Cosminexus SOAPアプリケーション開発ガイド」を参照してください。

 

Webサービスの場合,オブジェクト間の送受信に使用するメッセージとして,SOAPメッセージを使用します。

通信スタイルがrpc形式の場合の電文の例を次の図に示します。

図4-3 電文の形式

[図データ]

SOAPメッセージおよびその形式については,マニュアル「Cosminexus SOAPアプリケーション開発ガイド」を参照してください。

注意事項:ユーザ定義の例外をthrowするWebサービスの場合
SOAPのWSDL生成機能で生成したWSDLの通信スタイルがrpc形式の場合,WSDLを修正し,対応するアダプタを作成する必要があります。
生成したWSDLの通信スタイルがdocument形式の場合,WSDLを修正する必要はありません。Cosminexus サービスプラットフォームでfaultを使用する場合,document形式のWSDLを使用することを推奨します。
WSDLの修正手順を次に示します。
  1. xsd:elementを定義します。
    xsd:element要素は,wsdl:definitions要素のtargetNamespace属性で示されたネームスペースと同じtargetNamespace属性を持つwsdl:types要素中のxsd:schema要素内に定義してください。
  2. wsdl:portType要素内のwsdl:operation要素中のwsdl:fault要素のmessage属性の値から対応するwsdl:message要素を取得し,内部に含まれるwsdl:part要素を確認します。
  3. 手順1.で追加したxsd:element要素にname属性を追加します。
    値は手順2.で取得したwsdl:part要素のtype属性のローカル名と同じ値にします。
  4. 手順3.と同様に,type属性を追加します。
    値は手順2.で取得したwsdl:part要素のtype属性と同じ値にします。
  5. 手順2.で確認したwsdl:part要素からtype属性を削除し,新たにelement属性を追加します。
    ネームスペースプレフィックスは,手順1.で参照したwsdl:types要素内のxsd:schema要素を示すプレフィックスにします。また,ローカル名は手順3.で追加したname属性と同じ値にします。

 

WSDLを修正したあとには,Webサービスそのものを再作成する必要があります。
次に示すコマンドを実行して,修正したWSDLからWebサービス用のスケルトンを再生成してください。

WSDL2Java -s <WSDLファイル>

WSDL2Javaコマンドの詳細については,マニュアル「Cosminexus SOAPアプリケーション開発ガイド」のスケルトンの生成に関する内容を参照してください。