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() 特定のエントリを追加または上書きするオプションを使用して、環境への Map アクセスをコネクターに設定できるようにします。 |
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 loaderSE を Bean インスタンスに提供するコールバック。 |
void | setConnectOnStartup(boolean connectOnStartup) プロキシが作成時 ( true) に MBeanServer に接続するか、最初に呼び出されたとき (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, waitSEprotected 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()
Map アクセスをコネクターに設定できるようにします。environment[myKey] などを介してエントリを直接指定する場合に便利です。これは、子 Bean 定義にエントリを追加またはオーバーライドする場合に特に役立ちます。
public void setAgentId(StringSE agentId)
MBeanServer のエージェント ID を設定します。 デフォルトはなしです。指定した場合、"serviceUrl" プロパティが設定されていない限り、これによりアテンダント MBeanServer の検索が試行されます。
public void setConnectOnStartup(boolean connectOnStartup)
true) に MBeanServer に接続するか、最初に呼び出されたとき (false) に接続するかを設定します。デフォルトは true です。public void setRefreshOnConnectFailure(boolean refreshOnConnectFailure)
false です。オンにすると、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)
BeanClassLoaderAwareclass loaderSE を 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()
DisposableBeanBeanFactory によって呼び出されます。DisposableBean の destroy