JwsContext.onFinish(boolean) コールバック
現在の会話が終了しようとしている場合に受信されます。
public void onFinish(boolean expired)
expired
会話が期限切れによって終了している場合は true、それ以外の場合は false。
なし。
なし。
会話が終了しようとしているときに実行するコードを追加する場合は、このコールバックのハンドラを実装します。たとえば、クライアントに結果を返す前にサービスの会話が終了する可能性がある場合には、応答が来ていないことをクライアントに知らせる onFinish コールバック ハンドラを実装できます。コールバック ハンドラの実行が終了した後で、会話は終了します。
expired の値は、会話が期限切れ(「タイムアウト」)によって終了しているのか、またはサービスの設計に従って意図的に終了されたのかを示します。通常の環境では、会話は以下の理由によって終了します。
サービスの実行が、会話を終了するよう示されている(つまり、conversation プロパティの phase 属性が "finish" に設定されている)何らかの項目(コールバックやメソッドなど)に到達した。
コードで JwsContext.finishConversation メソッドが呼び出された。エラーを処理するコードで「クリーン アップ」を行うために、このメソッドが呼び出される場合があります。
それ以外の場合では、会話が設計によって終了されることはありません。会話が終了されない場合、会話は WebLogic Server によって終了されるまで継続します。以下の場合には、会話が終了します。
会話が、サービスの conversation-lifetime プロパティの max-age 属性値に達するまで存続した場合。
会話が、サービスの conversation-lifetime プロパティの max-idle-time 属性値に達するまでアイドル状態であった場合。
このコールバックを呼び出すのにコードを記述する必要はありません。サービスが WebLogic Server からコールバックを受信した場合に実行するコールバック ハンドラを実装します。コードは次のようになります。
public void context_onFinish(boolean expired) { /* If the conversation has ended because it expired, tell the client that results will not be coming. */ if(expired){ callback.onError("Results unavailable at this time. Please try again."); } }