|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjp.co.melco.preservcs.PsvWTclClient
PreSerV WebTcl セッション管理クラスです。
フィールドの概要 | |
static short |
CANCEL_STOCK_SEND_RESPONSE
ストックしたマクロをキャンセルするモード(現版では廃止しました) |
static short |
CREATE_CLOSE_RESPONSE
e_closeのレスポンス作成用モード。 |
static short |
CREATE_CONNECT_RESPONSE
e_connectのレスポンス作成用モード。 |
static short |
CREATE_PSEUDO_CONNECT_RESPONSE
e_connect時の詳細なエラーを通知するための特殊モード。 |
static short |
CREATE_SEND_DATA_RESPONSE
e_recvの繰り返し問合せ時のレスポンス作成モード。 |
static short |
CREATE_SEND_RESPONSE
e_sendのレスポンス作成用モード。 |
static short |
CREATE_STOCK_SEND_RESPONSE
ストックしたマクロコマンドでe_sendへのレスポンスを作成するモード。 |
static short |
NOP_STOCK_SEND_RESPONSE
ストックしたマクロがまだない場合204のレスポンスを出力するモード。 |
メソッドの概要 | |
boolean |
checkAskInfo(int aSessionID)
レスポンスデータのチェック(e_recv用)。 |
int |
clearSessionInfo(int aSessionID)
WebTclセッション情報のクリア。 |
int |
clearStockCmd(int aSessionID)
ストックしたコマンドのクリア。 |
int |
clearStockData(int aSessionID)
ストックしたデータのクリア。 |
int |
createResponseData(int aSessionID,
javax.servlet.http.HttpServletResponse aResponse,
java.lang.String aData,
short mode)
レスポンスの作成。 |
PsvWTclSessionInformation |
duplicateCheck(PsvWTclHeaderInf aHeadInf)
同一ホストかつ同一仮想ポート番号からの、複数コネクト時は以前の情報 を取り出します。 |
java.lang.String |
getAppAttribute(int aSessionID,
java.lang.String aKey)
アプリケーション用属性の取り出し。 |
java.lang.String |
getCharEncoding()
文字エンコード取得。 |
PsvWTclHeaderInf |
getHeaderInformation(javax.servlet.ServletRequest aRequest)
サーブレット・リクエストからWebTcl関連ヘッダ情報を取り出します。 |
static PsvWTclClient |
getInstance()
インスタンスの生成・取得。 |
int |
getPseudoStatus(int aSessionID)
偽接続状態の取得。 |
int |
getRefCnt()
参照数の加算。 |
int |
getSessionID(PsvWTclHeaderInf aHeaderInf)
WebTclセッションIDの取得・採番。 |
void |
mergeBuddyTable(java.util.Hashtable buddyTable)
協調関係にあるAPサーバのWebTclセッションIDテーブルをマージ します。 |
int |
registerActionURI(int aSessionID,
java.lang.String aActionKeyWord,
java.lang.String aActionURI)
アクションURIの登録。 |
static void |
releaseInstance()
インスタンスの開放。 |
void |
removeAppAttribute(int aSessionID,
java.lang.String aKey)
アプリケーション用属性の削除。 |
void |
saveSessionInfo(javax.servlet.http.HttpSession sess)
APサーバ間でセッション共有時の保存処理。 |
boolean |
setAppAttribute(int aSessionID,
java.lang.String aKey,
java.lang.String aValue)
アプリケーション用属性の設定。 |
void |
setCharEncoding(java.lang.String encoding)
文字エンコード設定。 |
void |
setLoggerLevel(org.apache.log4j.Logger logger)
ログレベルの同期設定。 |
void |
setLogLevel(int aLogLevel)
ログレベル設定。 |
int |
stockResponseCmd(int aSessionID,
java.lang.String aData)
レスポンスコマンドのストック(e_send用)。 |
int |
stockResponseData(int aSessionID,
java.lang.String aData)
レスポンスデータのストック(e_recv用)。 |
クラス java.lang.Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
public static final transient short CREATE_CONNECT_RESPONSE
registerActionURLでストックしたアクションキーとアクションのURL をFE-COMへ返信し、登録するレスポンスを作成します。
加工用データは使用しません。
public static final transient short CREATE_CLOSE_RESPONSE
終了のレスポンスを返信します。加工用データは指定しなくても良く、 終了時にWebTclエンジン側で実行したいコマンドがあれば指定すること も可能です。
※一部APサーバでnull指定時にレスポンスを端折るので、現在は必ず";" (Tclでコマンドの区切りを示すNOPになるコマンド)を送信しています。
public static final transient short CREATE_SEND_RESPONSE
加工用データで指定したコマンドを、WebTclエンジンに実行コマンドと して返信しするレスポンスを作成します。
コマンドやデータのストック時は、CREATE_STOCK_SEND_RESPONSEや CREATE_SEND_DATA_RESPONSEを使用してください。
public static final transient short CREATE_SEND_DATA_RESPONSE
stockResponseDataでストックしておいたデータをe_recvで受信可能なように 返信します。※非同期でデータを返す場合だけ使用してください。
加工用データは使用しません。
public static final transient short CREATE_STOCK_SEND_RESPONSE
stockResponseCmdでストックしておいたコマンドを返信し、WebTclエンジンの イベントスレッドで実行します。
ストックしたマクロコマンドの最後に加工用データも結合します。
public static final transient short CANCEL_STOCK_SEND_RESPONSE
public static final transient short NOP_STOCK_SEND_RESPONSE
e_recvからのポーリングリクエストに対する、返信時やストック時に
WebTclコマンドを返す必要がない場合に使用します。 加工用データは使用しません。
public static final transient short CREATE_PSEUDO_CONNECT_RESPONSE
エラー通知用のTclコマンドを加工前データに指定して、エラーメッセージ
ダイアログ表示コマンドを送信する。
このモード時を判別するため偽接続(pseudoConnect)項目がHTTPヘッダ部に現れる。
エラー通知用のTclコマンド送信後、仮の接続を即時切断する。
メソッドの詳細 |
public static PsvWTclClient getInstance()
このメソッドでインスタンスの自動生成と取得を行います。生成は1イン
スタンスだけです。アプリケーションからコンストラクタは使用しません。
注) 異なるクラスパスからPsvWTclClient.jarをロードすると別インスタン
スとなります。正常に動作させる為にはアプリケーションで共通のパス
にJarを配置してください。
public static void releaseInstance()
注)参照数を減算し、参照数が0以下になると、インスタンスをクリアします。
public int getRefCnt()
public int registerActionURI(int aSessionID, java.lang.String aActionKeyWord, java.lang.String aActionURI)
e_connectのレスポンス作成時に使用します。 createResponseData(mode=CREATE_COONECT_RESPONSE)を実行する前に、
コールします。
以後のリクエスト時のアクション・キーワードと、アクションの相対的
なパス名を関連付け、アクションマップを作成し、IEアドオンのFE-COM
へレスポンスとして通知します。
アクション・キーワードを""で指定すると、デフォルトのアクションの
パス名の指定と判断します。
以後のリクエスト(e_send)時にFE-COMは、先頭のアクションキーワード
をキーにアクションマップを検索し、対応するパス名をInitActionURL
のホスト名に合成して、リクエストのURLに適用します。
aSessionID
- WebTclセッションIDaActionKeyWord
- アクション・キーワードaActionURI
- アクションURI
(注)最低1つのキーワードなしデフォルトのアクションURIの登録が必要です。
public int createResponseData(int aSessionID, javax.servlet.http.HttpServletResponse aResponse, java.lang.String aData, short mode)
IEアドオンのFE-COMへレスポンスを返信するためのAPIです。
基本的にレスポンス作成時の最後にコールします。
HttpServletReponseのヘッダ部とボディ部にWebTcl独自の形式で、
データを格納します。
リクエストの種別により、ヘッダ部やボディ部の加工方法が違うため
引数modeで処理モードを指定します。
指定値は本クラスの定数として以下のモードを定義しています。
CREATE_CONNECT_RESPONSE:e_connect時のレスポンス作成モード
CREATE_CLOSE_RESPONSE:e_close時のレスポンス作成モード
CREATE_SEND_RESPONSE:e_send時のレスポンス作成モード
CREATE_SEND_DATA_RESPONSE:e_recvの繰り返し問合せ時のレスポ
ンス作成モード
CREATE_STOCK_SEND_RESPONSE:ストックしたマクロコマンドで
e_sendへのレスポンスを作成するモード。
NOP_STOCK_SEND_RESPONSE:ストックしたマクロがまだない場合
204のレスポンスを出力するモード。
CREATE_PSEUDO_CONNECT_RESPONSE:e_connect時に、アプリでエラー
にして、エラー原因を通知するため、仮の接続(偽接続)を行うモード。
加工前データで指定したマクロコマンドを実行し、直後に接続を終了します。
マクロのコマンドの実行が不要な場合は、";"など実行しても影響のない
マクロコマンドを指定してください。
aSessionID
- WebTclセッションIDaResponse
- 出力先レスポンスオブジェクトaData
- 加工用データmode
- 処理モード。定数値フィールド参照。
-3:出力先レスポンスオブジェクトがnull、-4:レスポンスの書き込みでエラー
public int getSessionID(PsvWTclHeaderInf aHeaderInf)
e_connect時は新規採番します。その他のケースはヘッダ情報のWebTcl
セッションIDを取り出し、チェックして既存採番であれば返します。
既存採番で無い場合は不正として-1を返します。
aHeaderInf
- ヘッダー情報格納クラス
public PsvWTclHeaderInf getHeaderInformation(javax.servlet.ServletRequest aRequest)
aRequest
- サーブレット・リクエスト
public int clearSessionInfo(int aSessionID)
saveSession=trueの時はセッション情報を未使用としてリセットし、
クリア候補とします。
注)消去は一度連係APサーバにクリア候補を送付してから、次回別リク
エストの採番のタイミングでクリアとなります。
saveSession=falseの時は直接セッション情報を消去します。
aSessionID
- WebTclセッションID
public int stockResponseCmd(int aSessionID, java.lang.String aData)
本メソッドでWebTclコマンドを蓄積し、createResponseData
(mode=CREATE_STOCK_SEND_RESPONSE)で一括してレスポンスとして送信
します。
aSessionID
- WebTclセッションIDaData
- ストックコマンド文字列
public int stockResponseData(int aSessionID, java.lang.String aData)
本メソッドでデータとしての文字列を蓄積し、createResponseData
(mode=CREATE_SEND_DATA_RESPONSE)で一括してレスポンスとして送信
します。
受信側のe_recvではレスポンスの文字列は、変数に代入して参照し、
直接コマンドとして実行されることはありません。
aSessionID
- WebTclセッションIDaData
- ストックデータ文字列
public boolean checkAskInfo(int aSessionID)
stockResponseDataメソッドでストックしたデータがあるかチェックします。
e_recvのポーリングリクエスト、FE-COM.AskRequestURLで指定されるサーブ
レットは、まずこのメソッドでデータがあることを確認し、データがあれ
ば、createResponseDataをmode=CREATE_SEND_DATA_RESPONSEで実行し、 無ければmode=NOP_STOCK_SEND_RESPONSEで実行してください。
後者の場合、e_recvの待機時間内再度ポーリングリクエストが送信されて
きます。
aSessionID
- WebTclセッションID
public PsvWTclSessionInformation duplicateCheck(PsvWTclHeaderInf aHeadInf)
を取り出します。
ただし、同一IEプロセスからのリクエスト時は同一コネクトと判断し、
重複と判断しません。
またIEプロセスごと異常終了した場合の以前のセッション情報のクリアも
同時に行ないます。
aHeadInf
- WebTclヘッダー情報格納クラス
public void mergeBuddyTable(java.util.Hashtable buddyTable)
※saveSession=true時に使用。(内部処理用)
空のセッション情報はここでクリーンアップします。
buddyTable
- 相手のセッション管理情報クラスのハッシュテーブルpublic void saveSessionInfo(javax.servlet.http.HttpSession sess)
sess
- HTTPセッション(HttpServletRequestから取得)内部的に保持するセッション管理情報をHTTPセッションに属性として設定
します。
一般にこれをトリガーとして、連係するAPサーバへHTTPセッションのレプリ
ケーションが実行されます。
注)HttpSession.setAttribute()で自動的にレプリケーションしないAP
サーバでは、別途レプリケーションのトリガーが必要です。
また、本メソッドでHttpSessionに設定する属性のキー"WebTclInst"
を使用しますので、アプリケーションでこのキーを使用しないでください。
public boolean setAppAttribute(int aSessionID, java.lang.String aKey, java.lang.String aValue)
これはアプリケーション用の情報の簡易コンテナ的な機能で、
saveSession=true時のAPサーバ間の情報の永続性を保障するものではあり
ません。
1APサーバ内で、WebTclセッション内の簡易情報保存機能として提供 しています。
情報は文字列ベースで、セッション情報の破棄とともに消失します。
永続性が重要な情報は、フレームワーク層の永続化専用のクラスのご使用
を推奨します。
aSessionID
- 関連付けるWebTclセッションIDaKey
- キー値aValue
- バリュー値
public java.lang.String getAppAttribute(int aSessionID, java.lang.String aKey)
setAppAttribute()メソッドで設定したアプリケーション用属性の
取得を行います。
aSessionID
- 関連付けてあるWebTclセッションIDaKey
- キー値
!=null:キー値に対応するバリュー値(String)
public void removeAppAttribute(int aSessionID, java.lang.String aKey)
注)アプリケーション用属性は設定後、本メソッドで明示的に削除しない場合は、
e_close時の処理までセッション情報とともに情報保持されます。
aSessionID
- 関連付けてあるWebTclセッションIDaKey
- キー値public void setLogLevel(int aLogLevel)
WebTcl Java APIのログレベルを設定します。
内部的にデフォルトのLoggerにレベルを設定します。
aLogLevel
- WebTclのログレベルを0〜5の範囲で設定します。設定値は以下のようにLoggerのLevelに変換します。 0=Level.OFF, 1=Level.FATAL 2=Level.ERROR, 3=Level.WARRN 4=Level.INFO, 5=Level.DEBUG
public void setLoggerLevel(org.apache.log4j.Logger logger)
アプリケーションが取得したLoggerクラスに、WebTcl Java API
と同じログレベルを設定します。
logger
- アプリケーションが取得したLoggerクラスpublic java.lang.String getCharEncoding()
public void setCharEncoding(java.lang.String encoding)
本メソッドは文字コードをユーザ側のAPで切り替えるため、提供される
メソッドです。
ただし、指定した文字列は直接HTTPヘッダに使用されるため、通常は設定
しないでください。
例)デフォルトWindows-31J
※PC系のSJISコードを指定
encoding
- 文字エンコードpublic int getPseudoStatus(int aSessionID)
aSessionID
- 確認対象のセッションのWebTclセッションID
public int clearStockCmd(int aSessionID)
aSessionID
- クリア対象のセッションのWebTclセッションID
public int clearStockData(int aSessionID)
aSessionID
- クリア対象のセッションのWebTclセッションID
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |