public abstract class AbstractSlsbInvokerInterceptor extends JndiObjectLocator implements MethodInterceptor
そのようなインターセプターは、アドバイスチェーンの最後のインターセプターでなければなりません。この場合、直接的なターゲットオブジェクトはありません。呼び出しは特別な方法で処理され、EJB ホームを介して取得された EJB インスタンスで実行されます。
CONTAINER_PREFIXlogger| コンストラクターと説明 |
|---|
AbstractSlsbInvokerInterceptor() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterPropertiesSet() 必要に応じて、起動時に EJB ホームをフェッチします。 |
protected ObjectSE | create() キャッシュされた EJB ホームオブジェクトで create() メソッドを呼び出します。 |
protected MethodSE | getCreateMethod(ObjectSE home) 指定された EJB ホームオブジェクトの作成メソッドを決定します。 |
protected ObjectSE | getHome() 使用する EJB ホームオブジェクトを返します。 |
ObjectSE | invoke(MethodInvocation invocation) 必要に応じてスレッドコンテキストを準備し、 invokeInContext(org.aopalliance.intercept.MethodInvocation) に委譲します。 |
protected abstract ObjectSE | invokeInContext(MethodInvocation invocation) 適切に準備されているスレッドコンテキスト内で、現在の EJB ホームで指定された呼び出しを実行します。 |
protected boolean | isHomeRefreshable() キャッシュされた EJB ホームオブジェクトがオンデマンドリフレッシュの対象になる可能性があるかどうかを返します。 |
protected void | refreshHome() キャッシュされたホームオブジェクトをリフレッシュします(該当する場合)。 |
void | setCacheHome(boolean cacheHome) 見つかった EJB ホームオブジェクトをキャッシュするかどうかを設定します。 |
void | setExposeAccessContext(boolean exposeAccessContext) ターゲット EJB へのすべてのアクセスに対して JNDI 環境コンテキストを公開するかどうかを設定します。 |
void | setLookupHomeOnStartup(boolean lookupHomeOnStartup) 起動時に EJB ホームオブジェクトを検索するかどうかを設定します。 |
getExpectedType, getJndiName, lookup, setExpectedType, setJndiNameconvertJndiName, isResourceRef, lookup, lookup, setResourceRefgetJndiEnvironment, getJndiTemplate, setJndiEnvironment, setJndiTemplatecloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic void setLookupHomeOnStartup(boolean lookupHomeOnStartup)
オフにして、EJB サーバーの起動を遅らせることができます。この場合、EJB ホームオブジェクトは最初のアクセスでフェッチされます。
public void setCacheHome(boolean cacheHome)
オフにすると、EJB サーバーをホットリスタートできます。この場合、EJB ホームオブジェクトは呼び出しごとにフェッチされます。
public void setExposeAccessContext(boolean exposeAccessContext)
デフォルトは "false" です。つまり、オブジェクトルックアップの JNDI コンテキストのみを公開します。WebLogic が認可要件を備えた EJB の必要に応じて、各 EJB 呼び出しの JNDI 環境(認可コンテキストを含む)を公開するには、このフラグを "true" に切り替えます。
public void afterPropertiesSet()
throws NamingExceptionSEInitializingBean の afterPropertiesSet JndiObjectLocator の afterPropertiesSet NamingExceptionSEsetLookupHomeOnStartup(boolean), refreshHome()protected void refreshHome()
throws NamingExceptionSENamingExceptionSE - JNDI ルックアップによってスローされた場合 JndiObjectLocator.lookup(), getCreateMethod(java.lang.Object)protected MethodSE getCreateMethod(ObjectSE home) throws EjbAccessException
home - EJB ホームオブジェクト EjbAccessException - メソッドを取得できなかった場合 protected ObjectSE getHome() throws NamingExceptionSE
デフォルトの実装は、初期化時に作成されたホームがあればそれを返します。それ以外の場合は、ルックアップを呼び出して、呼び出しごとに新しいプロキシを取得します。
サブクラスでオーバーライドできます。たとえば、ホームオブジェクトを再作成する前に一定時間キャッシュしたり、ホームオブジェクトがまだ生きているかどうかをテストしたりできます。
NamingExceptionSE - プロキシの作成に失敗した場合 JndiObjectLocator.lookup(), getCreateMethod(java.lang.Object)protected boolean isHomeRefreshable()
public ObjectSE invoke(MethodInvocation invocation) throws ThrowableSE
invokeInContext(org.aopalliance.intercept.MethodInvocation) に委譲します。MethodInterceptor の invoke invocation - メソッド呼び出しジョインポイント Joinpoint.proceed() の呼び出しの結果。インターセプターによってインターセプトされる可能性があります ThrowableSE - インターセプターまたはターゲットオブジェクトが例外をスローする場合 protected abstract ObjectSE invokeInContext(MethodInvocation invocation) throws ThrowableSE
invocation - AOP メソッドの呼び出し ThrowableSE - 呼び出しが失敗した場合 protected ObjectSE create() throws NamingExceptionSE, InvocationTargetExceptionSE
create() メソッドを呼び出します。NamingExceptionSE - JNDI によってスローされた場合 InvocationTargetExceptionSE - create メソッドによってスローされた場合