14.8.12 SOAPメッセージで要素の省略を含んだ配列を使用するにはどのようにしたらよいですか?
メッセージング形態のSOAPアプリケーションを利用してください。RPC形態のSOAPアプリケーションでは,配列の要素を省略したSOAPメッセージを生成することはできません。
配列要素の省略とは,SOAPメッセージ中で,配列にoffsetを指定した場合,positionを指定した場合,配列要素にnil値を指定した場合,配列のサイズよりも要素の数が少なかった場合です。
他社製品のクライアントから接続する場合などで,配列要素の省略を含んだSOAPメッセージを受け取るRPCサービスを実装するときの注意点を次に示します。
RPC呼び出しの引数として,int[]やdouble[]のように,Javaの基本データ型を要素に持つ配列を使用した場合,配列要素が省略されていると,サービスからSOAP Faultが返ります。
SOAP Faultの要素 |
内容 |
---|---|
faultcode |
{http://c4web.cosminexus.com}:Server.userException |
faultstring |
KDCCF9000-E C4Fault exception occurred. Detail = java.lang.NullPointerException |
faultactor |
なし |
detail |
なし |
RPCサービス実装で配列要素の省略を使用しなくてはならない場合は,配列要素に基本データ型のラッパークラスを使用してください。
基本データ型のラッパークラスとは,java.lang.Integerクラスやjava.lang.Doubleクラスなどの,基本データ型の値を格納することのできるクラスです。
配列要素がクラスである場合,省略された要素にはnull値が格納されます。