利用するサービス部品が,Cosminexusが提供しているSOAPアプリケーション開発支援機能を使用して作成したSOAPアプリケーションに対応するWebサービスの場合,サービス部品電文のXMLフォーマット定義ファイルを作成する必要はありません。
ただし,SOAPのWSDL生成機能(Java2WSDLコマンド)でWSDLを作成しておく必要があります。Java2WSDLコマンドでWSDLを生成する機能については,マニュアル「Cosminexus SOAPアプリケーション開発ガイド」を参照してください。
Webサービスの場合,オブジェクト間の送受信に使用するメッセージとして,SOAPメッセージを使用します。
通信スタイルがrpc形式の場合の電文の例を次の図に示します。
図4-3 電文の形式
![[図データ]](figure/zc040500.gif)
SOAPメッセージおよびその形式については,マニュアル「Cosminexus SOAPアプリケーション開発ガイド」を参照してください。
- 注意事項:ユーザ定義の例外をthrowするWebサービスの場合
- SOAPのWSDL生成機能で生成したWSDLの通信スタイルがrpc形式の場合,WSDLを修正し,対応するアダプタを作成する必要があります。
- 生成したWSDLの通信スタイルがdocument形式の場合,WSDLを修正する必要はありません。Cosminexus サービスプラットフォームでfaultを使用する場合,document形式のWSDLを使用することを推奨します。
- WSDLの修正手順を次に示します。
- xsd:elementを定義します。
xsd:element要素は,wsdl:definitions要素のtargetNamespace属性で示されたネームスペースと同じtargetNamespace属性を持つwsdl:types要素中のxsd:schema要素内に定義してください。
- wsdl:portType要素内のwsdl:operation要素中のwsdl:fault要素のmessage属性の値から対応するwsdl:message要素を取得し,内部に含まれるwsdl:part要素を確認します。
- 手順1.で追加したxsd:element要素にname属性を追加します。
値は手順2.で取得したwsdl:part要素のtype属性のローカル名と同じ値にします。
- 手順3.と同様に,type属性を追加します。
値は手順2.で取得したwsdl:part要素のtype属性と同じ値にします。
- 手順2.で確認したwsdl:part要素からtype属性を削除し,新たにelement属性を追加します。
ネームスペースプレフィックスは,手順1.で参照したwsdl:types要素内のxsd:schema要素を示すプレフィックスにします。また,ローカル名は手順3.で追加したname属性と同じ値にします。
- WSDLを修正したあとには,Webサービスそのものを再作成する必要があります。
- 次に示すコマンドを実行して,修正したWSDLからWebサービス用のスケルトンを再生成してください。
- WSDL2Javaコマンドの詳細については,マニュアル「Cosminexus SOAPアプリケーション開発ガイド」のスケルトンの生成に関する内容を参照してください。