Apdesigner プログラマーズガイド
目次 索引 前ページ次ページ

第2部 アプリケーション開発編> 第4章 Webサービスアプリケーションを開発する> 4.3 留意事項

4.3.1 サービスエンドポイントインタフェースに関する規則について

サービスエンドポイントインタフェースを作成する場合の留意事項を示します。

+インタフェース

サービスエンドポイントインタフェースは、java.rmi.Remoteを継承する必要があります。

+メソッド

サービスエンドポイントインタフェースに宣言するメソッドは、必ずjava.rmi.RemoteExceptionをthrowするように宣言する必要があります。

+使用可能なデータ型

Webサービスでは、Javaで以下のデータ型について受け渡しをすることができます。

ユーザ定義クラス型のメンバとして配列を使うこともできます。また、ユーザ定義クラス型の配列をデータ型として使用することもできます。

style属性/use属性にRPC/LITERALを指定する場合には、プリミティブ型のラッパークラス型は使用できません。

+out/inoutパラメタ

Webサービスでは、メソッドの復帰値以外でもサーバからクライアントに値を返信することができます。値をサーバから返信するのみのパラメタをoutパラメタといい、値をクライアントから送信し、サーバから返信するパラメタをinoutパラメタといいます。
サービスエンドポイントインタフェース上では、out/inoutパラメタの区別はなく、どちらもHolderクラスを使用します。

プリミティブ型やそのラッパークラス型、標準クラス型には、javax.xml.rpc.holders パッケージに以下のクラス名で標準のHolderクラスが提供されていますので、これらのHolderクラスを使用します。

StringHolder, BooleanHolder, BooleanWrapperHolder, ByteHolder, ByteWrapperHolder, DoubleHolder, DoubleWrapperHolder, FloatHolder, FloatWrapperHolder, IntHolder, IntegerWrapperHolder, LongHolder, LongWrapperHolder, CalendarHolder, QNameHolder, ShortHolder, ShortWrapperHolder, BigDecimalHolder, BigIntegerHolder, ByteArrayHolder

style属性/use属性にRPC/LITERALを指定する場合には、プリミティブ型のラッパークラス型は使用できません。
そのため、XxxxxWrapperHolderクラスも使用できません。

ユーザ定義クラス型や配列型など、標準でHolderクラスが提供されていない場合、固有のHolderクラスを用意して使用します。

+例外

Webサービスでは、メソッドから例外を返すことができます。
ただし、構造体型・Bean型と同様に、使用可能な型でかつクラス内のメンバ(構造体の場合publicインスタンスフィールド、Bean型の場合JavaBeansのget/setメソッドで表現されるプロパティ)のみ、情報の受渡しが行われます(Throwable.getCause()で取得できる原因を表す例外などは受け渡しが行われません)。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 1998-2006