public abstract class AbstractSlsbInvokerInterceptor extends JndiObjectLocator implements MethodInterceptor
そのようなインターセプターは、アドバイスチェーンの最後のインターセプターでなければなりません。この場合、直接的なターゲットオブジェクトはありません。呼び出しは特別な方法で処理され、EJB ホームを介して取得された EJB インスタンスで実行されます。
CONTAINER_PREFIX
logger
コンストラクターと説明 |
---|
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, setJndiName
convertJndiName, isResourceRef, lookup, lookup, setResourceRef
getJndiEnvironment, getJndiTemplate, setJndiEnvironment, setJndiTemplate
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public 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 NamingExceptionSE
InitializingBean
の afterPropertiesSet
JndiObjectLocator
の afterPropertiesSet
NamingExceptionSE
setLookupHomeOnStartup(boolean)
, refreshHome()
protected void refreshHome() throws NamingExceptionSE
NamingExceptionSE
- JNDI ルックアップによってスローされた場合 JndiObjectLocator.lookup()
, getCreateMethod(java.lang.Object)
@Nullable 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()
@Nullable public ObjectSE invoke(MethodInvocation invocation) throws ThrowableSE
invokeInContext(org.aopalliance.intercept.MethodInvocation)
に委譲します。MethodInterceptor
の invoke
invocation
- メソッド呼び出しジョインポイント Joinpoint.proceed()
の呼び出しの結果。インターセプターによってインターセプトされる可能性があります ThrowableSE
- インターセプターまたはターゲットオブジェクトが例外をスローする場合 @Nullable protected abstract ObjectSE invokeInContext(MethodInvocation invocation) throws ThrowableSE
invocation
- AOP メソッドの呼び出し ThrowableSE
- 呼び出しが失敗した場合 protected ObjectSE create() throws NamingExceptionSE, InvocationTargetExceptionSE
create()
メソッドを呼び出します。NamingExceptionSE
- JNDI によってスローされた場合 InvocationTargetExceptionSE
- create メソッドによってスローされた場合