WebObjects 5.2.3

com.webobjects.appserver
Class WOAdaptor

java.lang.Object
  extended bycom.webobjects.appserver.WOAdaptor

public abstract class WOAdaptor
extends Object

WOAdaptorクラスは、すべてのWebObjectsアプリケーションアダプタの抽象スーパークラスです。例えば実行中のアプリケーション側のアダプタなどがこれに当たりますが、WOServletAdaptorはこのリストには含まれません。

デフォルトアダプタはまず最初にHTTPリクエストを受取り、それらのイベントをWORequestオブジェクトにパッケージします。続いてWOApplication オブジェクトのdispatchRequest が呼ばれWORequestオブジェクトがパラメタとしてセットされます。dispatchRequestはWOResponse オブジェクトを返し、それがクライアントに対してHTTP レスポンスとして返却されます。

WOApplication のコンストラクタ実行中には、WOApplication.adaptorForName()が呼ばれ、順にWOAdaptor のコンストラクタが実行されていきます。WOApplicationオブジェクトが実行ループに入ると(WOApplication's run()メソッドによって)、registerForEventsがコールされます。実行ループを抜ける準備が整うと(通常WOApplicationのterminate()メソッドが呼ばれる)、terminate()がコールされます。複数のアダプタがある場合には、それぞれ独立してコールされます。

重要なのは、実行ループ中にはWOAdaptorオブジェクトのいかなるメソッドも繰り返しコールされないということです。つまり、デベロッパーは最低ひとつのregisterForEventsのスレッドを生成すればよいということです。

カスタムアダプタはWOAdaptorのサブクラスによって処理されます。カスタムアダプタはWOAdaptorのプロパティを使ってWODefaultAdaptorの代替として扱われるか、または
WOAdditionalAdaptorsのプロパティによってWODefaultAdaptorに追加する形で実行されます。
デフォルトアダプタの代わりにカスタムアダプタを利用する:
-WOAdaptor com.mycompany.MyCustomAdaptor

追加アダプタを実行する:

-WOAdditionalAdaptors "({WOAdaptor=com.mycompany.MyCustomAdaptor1;}, {WOAdaptor=com.mycompany.MyCustomAdaptor2;})"

参照:
WOApplication.adaptorWithName(String aClassName, NSDictionary anArgsDictionary), WOApplication.dispatchRequest(WORequest aRequest), registerForEvents(), unregisterForEvents()

Field Summary
protected static int DefaultListenQueueSize
 intのクラス定数。プロパティとしてどこにも設定がない場合、WOListenQueueSize のデフォルト値となります。
 
Constructor Summary
WOAdaptor(String aName, NSDictionary arguments)
           WOAdaptorを、aNameと、argumentsという引数で初期化します。
 
Method Summary
 boolean dispatchesRequestsConcurrently()
 アダプタが、マルチスレッドならばtrueを返し、そうでなければfalseを返します。
 boolean doesBusyRunOnce()
 推奨されません。
 int port()
 アダプタがモニタする(Listenする)ポート番号を返します。アプリケーションのコンストラクタ実行中には、このメソッドは、WOPortのユーザデフォルト値を返します(あるいは、WOPortコマンドの値−コマンドラインオプションで与えられる−を返す)。これにより、アプリケーションが開始されたことを示します。
abstract  void registerForEvents()
 WOApplicationが、WOAdaptorにイベント受取りの準備を開始するようセットするために呼ばれるメソッド
 void runOnce()
 推奨されません。
 String toString()
 レシーバーをStringとして返します。
abstract  void unregisterForEvents()
 WOApplicationが、WOAdaptorにイベント受取りを中止するようセットするために呼ばれるメソッド
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DefaultListenQueueSize

protected static final int DefaultListenQueueSize
intのクラス定数。プロパティとしてどこにも設定がない場合、WOListenQueueSize のデフォルト値となります。

参照:
Constant Field Values
Constructor Detail

WOAdaptor

public WOAdaptor(String aName,
                 NSDictionary arguments)

WOAdaptorを、aNameと、argumentsという引数で初期化します。ANameは、WOAdaptorサブクラスの名前。argumentsは、このアダプタをに対して指定されたデフォルトのオプション(たとえば、ポート番号や、問い合わせ待ち行列の深さなど)。

WOApplicationのメソッドであるadaptorWithNameは、このメソッドを使って新規のWOAdaptorsを生成します。もしWOAdaptorやWOAdditionalAdaptorsプロパティによってつくられるカスタムWOAdaptorsがない場合は、デフォルトアダプタ(WODefaultAdaptor) が生成されます。

カスタムサブクラスはこのメソッドを使ってオブジェクトの初期化を行わなくてはなりません。

Parameters:
aName - WOAdaptorサブクラスの名前
arguments - 個々のアダプタのデフォルトオプション
参照:
WOApplication.adaptorWithName(String aClassName, NSDictionary anArgsDictionary)
Method Detail

dispatchesRequestsConcurrently

public boolean dispatchesRequestsConcurrently()
アダプタが、マルチスレッドならばtrueを返し、そうでなければfalseを返します。trueが帰ってくるというこは必ずしも複数のリクエストが並行して処理されているということを意味するものではありません。それを保証したいのであれば、WOAllowsConcurrentRequestHandlingのプロパティをセットしてください。WOApplicationのisConcurrentRequestHandlingEnabledメソッドはアプリケーションの現時点でのマルチスレッド処理状態を返します。

戻り値:
アダプタが、マルチスレッドならばtrueを返し、そうでなければfalseを返します。
参照:
WOApplication.isConcurrentRequestHandlingEnabled()

doesBusyRunOnce

public boolean doesBusyRunOnce()
推奨されません。このメソッドはコールあるいはオーバーライドされることはありません。

戻り値:
true

port

public int port()
アダプタがモニタする(Listenする)ポート番号を返します。必要であればこのメソッドの戻り値をWOAdaptorのサブクラスのコンストラクタにセットすることもできますが、たいていの場合WOPortプロパティでセットします。

戻り値:
ポート番号
参照:
WOApplication.port()

registerForEvents

public abstract void registerForEvents()
WOApplicationが、WOAdaptorにイベント受取りの準備を開始するようセットするために呼ばれるメソッド。このメソッドはアダプタの生存期間中、unregisterForEventsが発行される前にただ1度だけ呼ばれる、ということを憶えておかなければなりません。決してデベロッパーが直接利用すべきではありません。

参照:
unregisterForEvents()

runOnce

public void runOnce()
推奨されません。このメソッドはコールあるいはオーバーライドされることはありません。


toString

public String toString()
レシーバーをStringとして返します。

戻り値:
レシーバーをStringとして返します。

unregisterForEvents

public abstract void unregisterForEvents()
WOApplicationが、WOAdaptorにイベント受取りを中止するようセットするために呼ばれるメソッド。このメソッドはアダプタの生存期間中、registerForEventsが発行された後にただ1度だけ呼ばれる、ということを憶えておかなければなりません。決してデベロッパーが直接利用すべきではありません。

参照:
registerForEvents()

Last updated Thu Oct 21 15:04:16 PDT 2004.

Copyright © 2004 Apple Computer, Inc.