異なるプラットフォーム間での相互運用性を保証する手段として、WS-Iが定めるProfileに準拠したシステムを構築することが挙げられます。本製品では、WS-I Basic Profile1.0および WS-I Attachments Profile 1.0に準拠したシステムを構築することが可能です。
これらのProfileに準拠したシステムを構築する場合は、以下の点に注意してください。
iswsgen wsdlコマンドでWSDLファイルを生成する
WS-I Basic Profile1.0の規約では、WSDLファイルのuse属性を“literal”にする必要があります。iswsgen wsdl コマンドのデフォルトでuse属性が“literal”のWSDLファイルが生成されます。-styleuse(-y)オプションで指定を変更する場合は注意してください。iswsgen wsdl コマンドのオプション設定方法については、“リファレンスマニュアル(コマンド編)”の“iswsgen”を参照してください。
WSDLファイルを作成、または編集する
ユーザが自分でWSDLファイルを作成、またはiswsgen wsdl コマンドで生成したWSDLファイルを編集する場合は、WSDLファイルの最終的な作成者がWS-I Basic Profile1.0の規約の準拠を保証する必要があります。
最新バージョンのWS-I Basic Profile1.0の規約およびエラッタを参照して、規約の範囲内でWSDLファイルを作成、または編集してください。
最新バージョンのWS-I Basic Profile1.0の規約およびエラッタは、WS-I OrganizationのWebサイトを参照してください。
注意
日本語版の規約は最新版ではない場合があります。必ず最新版とエラッタを参照してください。
http://www.oasis-ws-i.org/
アプリケーション実行時のパラメタについて
WSDL作成時に-styleuse(-y)オプションでRPCLITERALを指定してアプリケーションを作成している場合、またはstyle属性が“rpc”、use属性が“literal”のWSDLファイルを使用してアプリケーションを作成している場合、以下の点に注意してください。
Webサービスアプリケーションのパラメタの値としてnullを指定して送信しないでください。
Webサービスアプリケーションのjavax.activation.DataHandlerの添付ファイル型のパラメタには、ひとつの通信内でほかの箇所と同一インスタンスを指定せず、それぞれ個別のインスタンスを指定してください。
セションの利用について
WebサービスアプリケーションではHTTP Cookieを利用したセションを利用可能です。しかし、WS-I Basic Profile1.0では、Webサービスの正常動作がHTTP Cookieに依存しない事が推奨されています。セションを利用する場合は、補助的な利用にとどめ、セションが継続されなくても正常動作できる設計にする事が推奨されます。
BOMを使用したUTF-8でエンコーディングされたXMLデータの扱い
WS-I Basic Profile1.0では、通信に使用するSOAPメッセージのエンコーディングに、BOM(Byte Order Mark)を使用したUTF-8の使用を認めています。ユーザが、BOMが付加されているUTF-8でエンコーディングされたXMLデータを使用して、SOAPエンベロープを作成する場合は、以下のSourceインタフェースを実装したクラスを使用してください。
SAXSource
StreamSource
ユーザが使用するパーサの種類によっては、上記以外のSourceインタフェースを実装したクラスを使用しても問題がない場合があります。詳細は使用するパーサの仕様を確認してください。
なお、XMLデータを使用してSOAPエンベロープを作成する方法の詳細については、“付録C SOAPメッセージの低レベル処理”を参照してください。
WS-I Attachments Profile 1.0に準拠したアプリケーションの開発
WS-I Attachments Profile 1.0に準拠したアプリケーションを開発する際には、以下に注意してください。
iswsgen wsdlサブコマンド実行時に-attachmentsTypeオプションで“apache”と指定した場合、非標準のXMLデータ型がWSDLファイルに出力されます。Attachments Profileに準拠したアプリケーションを開発する場合は-attachmentsTypeオプションを省略するか、オプション値に“swaref”と指定して、Javaクラスがwsibp:swaRef型またはmime:content要素にマップされるようにアプリケーションを作成してください。
また、本節の他の説明も参照し、Basic Profileにも準拠するようにアプリケーションを作成してください。