Interstage Application Server SOAPサービス ユーザーズガイド |
目次 索引 |
第8章 サポートされるデータ型 | > 8.1 XMLとJavaのデータ型マッピング |
RPCアプリケーションでは、java.util.Vectorクラスを利用することで、本節で取り上げた任意のデータ型が混在する配列を送受信できます。
XMLのデータ型として登録するデータ型 |
RPCアプリケーションのパラメタ(Javaのデータ型クラス) |
|
---|---|---|
inまたはreturn |
outまたはinout |
|
issoap:Vector |
java.util.Vector |
ZZZ.VectorHolder |
上記の"issoap"が表すネームスペースは"urn:xmlns-fujitsu-com:xml-soap-2002-10"です。
Vector vec = new Vector();
vec.addElement(vec); //自分自身を要素として持ちます。
java.util.Vectorクラスを使用します。
Vectorの要素として使用できるJavaのデータ型は、inパラメタまたは返り値として使用可能なJavaのデータ型と同じです。
Vectorの要素にnullがある場合、その要素の型の情報は保持しませんので注意してください。
Vector vec = new Vector(); String str = null; vec.addElement(str); //java.lang.String型であるという情報は保持されません。 |
java.util.VectorクラスをRPCサーバアプリケーションのメソッドのinout/outパラメタとして使用する場合、パラメタのデータ型としてZZZ.VectorHolderクラス を使用します。RPCサーバアプリケーションのメソッドでは、パラメタとして受け取ったZZZ.VectorHolderクラスのインスタンスのvalueフィールドを変更します。これにより、VectorHolderのvalueフィールドの、変更されたjava.util.VectorがRPCクライアントアプリケーションに送信されます。
RPCサーバアプリケーションでinoutパラメタとして使用する例
//RPCサーバアプリケーションのメソッド // vecはinoutパラメタとしてWebサービス・マネージャに登録する public void server_method(VectorHolder vec) { Object[] objects = vec.value.toArray(); // Objectの配列としてVectorの要素を得る for(int i = 0; i<objects.length; i++) { String longString = (String)objects[i] + "00"; vec.value.set(i,longString); // 値のセット } } |
上記の例ではinoutパラメタとして受け取った、ZZZ.VectorHolderクラスのインスタンスのvalueフィールドの各要素(すべてjava.lang.String型であると仮定)の末尾に文字列"00"を連結し、クライアントに送信します。
目次 索引 |