public class MBeanClientInterceptor extends ObjectSE implements MethodInterceptor, BeanClassLoaderAware, InitializingBean, DisposableBean
MBeanServerConnection
で実行されている MBean に呼び出しをルーティングする MethodInterceptor
。ローカルおよびリモート MBeanServerConnection
の両方で機能します。 デフォルトでは、MBeanClientInterceptor
は MBeanServer
に接続し、起動時に MBean メタデータをキャッシュします。これは、アプリケーションの起動時に実行されていない可能性のあるリモート MBeanServer
に対して実行する場合、望ましくない可能性があります。connectOnStartup
プロパティを「false」に設定することにより、プロキシに対する最初の呼び出しまでこのプロセスを延期できます。
この機能は、通常 MBeanProxyFactoryBean
を介して使用されます。詳細については、そのクラスの javadoc を参照してください。
MBeanProxyFactoryBean
, setConnectOnStartup(boolean)
コンストラクターと説明 |
---|
MBeanClientInterceptor() |
修飾子と型 | メソッドと説明 |
---|---|
void | afterPropertiesSet() 「connectOnStartup」がオンになっている場合(これはデフォルトです)、 MBeanServerConnection を準備します。 |
protected ObjectSE | convertResultValueIfNecessary(ObjectSE result, MethodParameter parameter) プロキシメソッドから戻るために、指定された結果オブジェクトを(属性アクセスまたは操作呼び出しから)指定されたターゲットクラスに変換します。 |
void | destroy() Bean の破棄時に、包含 BeanFactory によって呼び出されます。 |
protected ObjectSE | doInvoke(MethodInvocation invocation) 構成された管理対象リソースに呼び出しをルーティングします。 |
MapSE<StringSE,?> | getEnvironment() 特定のエントリを追加または上書きするオプションを使用して、コネクターへの環境へのマップアクセスを設定できます。 |
protected ClassSE<?> | getManagementInterface() ターゲット MBean の管理インターフェース、または何も指定されていない場合は null を返します。 |
protected ObjectSE | handleConnectFailure(MethodInvocation invocation, ExceptionSE ex) 接続をリフレッシュし、可能であれば MBean の呼び出しを再試行します。 |
ObjectSE | invoke(MethodInvocation invocation) 構成された管理対象リソースに呼び出しをルーティングします。 |
protected boolean | isPrepared() このクライアントインターセプターがすでに準備されているかどうか、つまり |
void | prepare() MBeanServerConnection が構成されていることを確認し、ローカル接続が提供されていない場合、ローカル接続の検出を試みます。 |
void | setAgentId(StringSE agentId) 検索する MBeanServer のエージェント ID を設定します。 |
void | setBeanClassLoader(ClassLoaderSE beanClassLoader) Bean class loader SE を Bean インスタンスに提供するコールバック。 |
void | setConnectOnStartup(boolean connectOnStartup) プロキシが作成時に MBeanServer に接続するか(「true」)、または最初に呼び出されたときに(「false」)を設定します。 |
void | setEnvironment(MapSE<StringSE,?> environment) JMX コネクターの環境を指定します。 |
void | setManagementInterface(ClassSE<?> managementInterface) ターゲット MBean の管理インターフェースを設定し、MBean 属性の Bean プロパティ setter および getter および MBean 操作の従来の Java メソッドを公開します。 |
void | setObjectName(ObjectSE objectName) 呼び出しがルーティングされる MBean の ObjectName を ObjectName インスタンスまたは String として設定します。 |
void | setRefreshOnConnectFailure(boolean refreshOnConnectFailure) 接続失敗時に MBeanServer 接続をリフレッシュするかどうかを設定します。 |
void | setServer(MBeanServerConnectionSE server) すべての呼び出しがルーティングされる MBean への接続に使用される MBeanServerConnection を設定します。 |
void | setServiceUrl(StringSE url) リモート MBeanServer のサービス URL を設定します。 |
void | setUseStrictCasing(boolean useStrictCasing) 属性に厳密な大文字小文字を使用するかどうかを設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
protected final Log logger
public void setServer(MBeanServerConnectionSE server)
MBeanServerConnection
を設定します。public void setServiceUrl(StringSE url) throws MalformedURLExceptionSE
MBeanServer
のサービス URL を設定します。public void setEnvironment(@Nullable MapSE<StringSE,?> environment)
@Nullable public MapSE<StringSE,?> getEnvironment()
たとえば、「environment [myKey]」を使用して、エントリを直接指定するのに便利です。これは、子 Bean 定義のエントリを追加または上書きする場合に特に便利です。
public void setAgentId(StringSE agentId)
MBeanServer
のエージェント ID を設定します。 デフォルトはなしです。指定した場合、"serviceUrl"
プロパティが設定されていない限り、これによりアテンダント MBeanServer の検索が試行されます。
public void setConnectOnStartup(boolean connectOnStartup)
MBeanServer
に接続するか(「true」)、または最初に呼び出されたときに(「false」)を設定します。デフォルトは「true」です。public void setRefreshOnConnectFailure(boolean refreshOnConnectFailure)
オンにすると、JMX サーバーのホットリスタートが可能になり、IOException が発生した場合に自動的に再接続して再試行できます。
public void setObjectName(ObjectSE objectName) throws MalformedObjectNameExceptionSE
ObjectName
を ObjectName
インスタンスまたは String
として設定します。public void setUseStrictCasing(boolean useStrictCasing)
厳密な大文字小文字を使用する場合、getFoo()
などの getter を持つ JavaBean プロパティは、Foo
と呼ばれる属性に変換されます。厳密なケーシングを無効にすると、getFoo()
は foo
に変換されます。
public void setManagementInterface(@Nullable ClassSE<?> managementInterface)
@Nullable protected final ClassSE<?> getManagementInterface()
null
を返します。public void setBeanClassLoader(ClassLoaderSE beanClassLoader)
BeanClassLoaderAware
class loader
SE を Bean インスタンスに提供するコールバック。 通常の Bean プロパティの設定後、ただし InitializingBean's
InitializingBean.afterPropertiesSet()
メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanClassLoaderAware
の setBeanClassLoader
beanClassLoader
- 所有クラスローダー public void afterPropertiesSet()
MBeanServerConnection
を準備します。InitializingBean
の afterPropertiesSet
public void prepare()
MBeanServerConnection
が構成されていることを確認し、ローカル接続が提供されていない場合、ローカル接続の検出を試みます。protected boolean isPrepared()
@Nullable public ObjectSE invoke(MethodInvocation invocation) throws ThrowableSE
MethodInterceptor
の invoke
invocation
- 再ルーティングする MethodInvocation
ThrowableSE
- ユーザーに伝播された呼び出しエラー doInvoke(org.aopalliance.intercept.MethodInvocation)
, handleConnectFailure(org.aopalliance.intercept.MethodInvocation, java.lang.Exception)
@Nullable protected ObjectSE handleConnectFailure(MethodInvocation invocation, ExceptionSE ex) throws ThrowableSE
接続失敗時にリフレッシュするように構成されていない場合、このメソッドは元の例外を単に再スローします。
invocation
- 失敗した呼び出し ex
- リモート呼び出しで発生した例外 ThrowableSE
- 失敗した場合、新しい呼び出しによって発生した例外 setRefreshOnConnectFailure(boolean)
, doInvoke(org.aopalliance.intercept.MethodInvocation)
@Nullable protected ObjectSE doInvoke(MethodInvocation invocation) throws ThrowableSE
MBeanServerConnection.get/setAttribute
に、メソッド呼び出しを MBeanServerConnection.invoke
に正しくルーティングします。invocation
- 再ルーティングする MethodInvocation
ThrowableSE
- ユーザーに伝播された呼び出しエラー @Nullable protected ObjectSE convertResultValueIfNecessary(@Nullable ObjectSE result, MethodParameter parameter)
result
- MBeanServer
によって返される結果オブジェクト parameter
- 呼び出されたプロキシメソッドのメソッドパラメーター public void destroy()
DisposableBean
BeanFactory
によって呼び出されます。DisposableBean
の destroy