Hitachi

Cosminexus V11 アプリケーションサーバ SOAPアプリケーション開発の手引


14.8.12 SOAPメッセージで要素の省略を含んだ配列を使用するにはどのようにしたらよいですか?

メッセージング形態のSOAPアプリケーションを利用してください。RPC形態のSOAPアプリケーションでは,配列の要素を省略したSOAPメッセージを生成することはできません。

配列要素の省略とは,SOAPメッセージ中で,配列にoffsetを指定した場合,positionを指定した場合,配列要素にnil値を指定した場合,配列のサイズよりも要素の数が少なかった場合です。

他社製品のクライアントから接続する場合などで,配列要素の省略を含んだSOAPメッセージを受け取るRPCサービスを実装するときの注意点を次に示します。

RPC呼び出しの引数として,int[]やdouble[]のように,Javaの基本データ型を要素に持つ配列を使用した場合,配列要素が省略されていると,サービスからSOAP Faultが返ります。

表14‒15 基本データ型配列要素が省略されていた場合の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値が格納されます。