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

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

5.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()で取得できる原因を表す例外などは受渡しが行われません。

+添付ファイル型

Webサービスで添付ファイルを使用する場合は以下のJavaの型を利用することができます。

javax.activation.DataHandler以外のクラスは、バイナリからJavaオブジェクトへ変換が行われるためオリジナルのファイルデータが完全には保持されません。Interstage Application Serverでは、バイナリのストリームをそのまま保持するjavax.activation.DataHandlerの使用を推奨しています。

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

Copyright 2007-2008 FUJITSU LIMITED