シリアライゼーションをサポートする
会話をサポートする Web サービスを構築するときには、会話の有効期間を通してそのデータが必要な変数を、シリアライゼーションをサポートする型として宣言する必要があります。シリアライゼーションとは、オブジェクト データをバイト ストリームとしてディスクに書き込めるようにする技術のことです。
会話の間、WebLogic Server はシリアライゼーションを使用してサービスのステート関連データをディスクに書き込みます。この処理は、以下のアイテムの実行が完了するたびに行われます。
@jws:operation タグおよび start または continue の @jws:conversation phase 属性でマークされたメソッド
コントロールのコールバック ハンドラ
メソッド、コールバック、またはコールバック ハンドラの実行時に例外が送出された場合は、シリアライゼーションは行われません。
シリアライゼーションの前提条件は、ほとんどの場合は容易に満たされます。Java のプリミティブ型では、シリアライゼーションはデフォルトでサポートされています。そのような型には、byte、boolean、char、short、int、long、double、および float があります。また、Java のクラスは Serializable インタフェースを実装しなければなりませんが、共通データ型を表す Java クラスの多くはすでに実装しています。そのようなクラスには、String や StringBuffer のほかに、プリミティブ型のラッパー クラス(
メンバー変数の型付けで使用する独自のクラスを作成する場合、または他者の作成したクラスを扱う場合は、そのクラスが Serializable インタフェースを必ず実装しているように注意してください。とは言っても、このインタフェースには実装するメソッドがないのでそれは例によって簡単なことです(このインタフェースを実装すると、ただ単にそのクラスにシリアライゼーション サポートのマークが付けらる)。
import java.io.Serializable; public class MyClass implements Serializable {...}
シリアライゼーションのサポートの詳細については、Sun Microsystems の Web サイトのシリアライゼーション情報(java.sun.com/j2se/1.3/docs/guide/serialization)または Java に関する適当な書籍を参照してください。