public interface MBeanServer extends MBeanServerConnection
エージェント側で MBean を操作するためのインタフェースです。登録済みの MBean にアクセスするためのメソッドのほか、MBean を作成、登録、削除するために必要なメソッドが含まれます。これが、JMX インフラストラクチャーの主要コンポーネントになります。
通常、ユーザーコードはこのインタフェースを実装しません。ただし、このインタフェースを実装するオブジェクトは、MBeanServerFactory クラスのいずれかのメソッドで取得できます。
MBean サーバーに追加された MBean はすべて管理対象となります。これらの MBean の属性とオペレーションには、MBean サーバーに接続されたコネクタまたはアダプタ経由でリモートアクセスできます。JMX 準拠の MBean でない Java オブジェクトは、MBean サーバーに登録できません。
MBean サーバーで MBean を登録または登録解除すると、MBeanServerNotification 通知が発行されます。オブジェクトを MBeanServerNotification のリスナーとして登録するには、MBeanServerDelegate の ObjectName を指定して、MBean サーバーメソッド addNotificationListener を呼び出ようにしてください。この ObjectName は、
JMImplementation:type=MBeanServerDelegate になります。
MBeanServerFactory クラスの createMBeanServer または newMBeanServer メソッドから取得されたオブジェクトは、そのメソッドに対して次のようにセキュリティーチェックを適用します。
セキュリティーマネージャーが存在しない場合、すなわち System.getSecurityManager() が null の場合、このインタフェースの実装はチェックを行わないこともあります。
セキュリティーマネージャーが存在する場合、または実装でチェックを行うことが選択されている場合、次のようなチェックが行われます。特に指定されないかぎり、className は、MBeanInfo.getClassName() によってターゲット MBean に返される文字列です。
セキュリティーチェックに失敗した場合、メソッドは SecurityException をスローします。
InstanceNotFoundException をスローする可能性があるメソッドは、アクセス権の内容に関係なく、MBean が存在しない場合にこの例外をスローします。これは、MBean が存在しなければ、className も存在しないからです。
invoke メソッドの呼び出し元は、アクセス権として MBeanPermission(className, operationName, name, "invoke") を持っている必要がある。
getAttribute メソッドの呼び出し元は、アクセス権として MBeanPermission(className, attribute, name, "getAttribute") を持っている必要がある。
getAttributes メソッドの呼び出し元は、アクセス権として MBeanPermission(className, null, name, "getAttribute") を持っている必要がある。呼び出し元がアクセス権 MBeanPermission(className, a, name, "getAttribute") を持っていない場合、MBean サーバーは、AttributeList 内の属性 a がリスト内に存在しないとみなす。
setAttribute メソッドの呼び出し元は、アクセス権として MBeanPermission(className, attrName, name, "setAttribute") を持っている必要がある (attrName は attribute.getName())。
setAttributes メソッドの呼び出し元は、アクセス権として MBeanPermission(className, null, name, "setAttribute") を持っている必要がある。呼び出し元がアクセス権 MBeanPermission(className, a, name, "setAttribute") を持っていない場合、MBean サーバーは、AttributeList 内の属性 a がリスト内に存在しないとみなす。
addNotificationListener メソッドの呼び出し元は、アクセス権として MBeanPermission(className, null, name, "addNotificationListener") を持っている必要がある。
removeNotificationListener メソッドの呼び出し元は、アクセス権として MBeanPermission(className, null, name, "removeNotificationListener") を持っている必要がある。
getMBeanInfo メソッドの呼び出し元は、アクセス権として MBeanPermission(className, null, name, "getMBeanInfo") を持っている必要がある。
getObjectInstance メソッドの呼び出し元は、アクセス権として MBeanPermission(className, null, name, "getObjectInstance") を持っている必要がある。
isInstanceOf メソッドの呼び出し元は、アクセス権として MBeanPermission(className, null, name, "isInstanceOf") を持っている必要がある。
queryMBeans メソッドの呼び出し元は、アクセス権として MBeanPermission(null, null, null, "queryMBeans") を持っている必要がある。呼び出し元がアクセス権 MBeanPermission(className, null, n, "queryMBeans") を持っていない場合、MBean サーバーは、name に一致する MBean n が存在しないとみなす。
特定のクエリー要素は、MBean サーバー上でオペレーションを実行する。呼び出し元が指定された MBean を使用するために必要なアクセス権を持っていない場合、この MBean はクエリーの結果から除外される。影響を受ける標準クエリー要素は、Query.attr(String)、Query.attr(String,String)、および Query.classattr()。
queryNames メソッドの場合、queryMBeans と同様のチェックが行われる。ただし、MBeanPermission オブジェクトでは、"queryMBeans" の代わりに "queryNames" が使用される。アクセス権 "queryMBeans" には、対応するアクセス権 "queryNames" が含まれる。
getDomains メソッドの呼び出し元は、アクセス権として MBeanPermission(null, null, null, "getDomains") を持っている必要がある。呼び出し元がアクセス権 MBeanPermission(null, null, new ObjectName("d:x=x"), "getDomains") を持っていない場合、返される配列からドメイン d が除外される。x=x は、ObjectName のコンストラクタ専用の任意の key=value ペア。
getClassLoader メソッドの呼び出し元は、アクセス権として MBeanPermission(className, null, loaderName, "getClassLoader") を持っている必要がある。
getClassLoaderFor メソッドの呼び出し元は、アクセス権として MBeanPermission(className, null, mbeanName, "getClassLoaderFor") を持っている必要がある。
getClassLoaderRepository メソッドの呼び出し元は、アクセス権として MBeanPermission(null, null, null, "getClassLoaderRepository") を持っている必要がある。
推奨されない deserialize メソッドは、これらの代替となるメソッドと同じアクセス権を必要とする。
instantiate メソッドの呼び出し元は、アクセス権として MBeanPermission(className, null, null, "instantiate") を持っている必要がある (className はインスタンス化されるクラスの名前)。
registerMBean メソッドの呼び出し元は、アクセス権として MBeanPermission(className, null, name, "registerMBean") を持っている必要がある。
MBeanPermission チェックに成功した場合、MBean のクラスの妥当性検査が行われる。具体的には、ProtectionDomain に MBeanTrustPermission("register") が含まれるかどうかがチェックされる。
name 引数が null の場合、MBeanRegistration.preRegister によって返される ObjectName により、別の MBeanPermission チェックが行われる。
createMBean メソッドの呼び出し元は、同等の instantiate および registerMBean が必要とするアクセス権を持っている必要がある。
unregisterMBean メソッドの呼び出し元は、アクセス権として MBeanPermission(className, null, name, "unregisterMBean") を持っている必要がある。
| 修飾子と型 | メソッドと説明 |
|---|---|
void |
addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback)
登録済み MBean にリスナーを追加します。
|
void |
addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback)
登録済み MBean にリスナーを追加します。
|
ObjectInstance |
createMBean(String className, ObjectName name)
MBean をインスタンス化し、MBean サーバーに登録します。
|
ObjectInstance |
createMBean(String className, ObjectName name, Object[] params, String[] signature)
MBean をインスタンス化し、MBean サーバーに登録します。
|
ObjectInstance |
createMBean(String className, ObjectName name, ObjectName loaderName)
MBean をインスタンス化し、MBean サーバーに登録します。
|
ObjectInstance |
createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature)
MBean をインスタンス化し、MBean サーバーに登録します。
|
ObjectInputStream |
deserialize(ObjectName name, byte[] data)
非推奨。
getClassLoaderFor を使って、直列化復元に使用する適切なクラスローダーを取得します。 |
ObjectInputStream |
deserialize(String className, byte[] data)
非推奨。
MBeanServer.getClassLoaderRepository() を使ってクラスローダーリポジトリを取得し、それを使って直列化復元を行います。 |
ObjectInputStream |
deserialize(String className, ObjectName loaderName, byte[] data)
非推奨。
getClassLoader を使って直列化復元用のクラスローダーを取得します。 |
Object |
getAttribute(ObjectName name, String attribute)
指定された MBean の特定の属性の値を取得します。
|
AttributeList |
getAttributes(ObjectName name, String[] attributes)
指定された MBean の複数の属性の値を取り出します。
|
ClassLoader |
getClassLoader(ObjectName loaderName)
指定された
ClassLoader を返します。 |
ClassLoader |
getClassLoaderFor(ObjectName mbeanName)
指定された MBean のクラスのロードに使用された
ClassLoader を返します。 |
ClassLoaderRepository |
getClassLoaderRepository()
この MBeanServer の ClassLoaderRepository を返します。
|
String |
getDefaultDomain()
MBean の指定に使用するデフォルトのドメインを返します。
|
String[] |
getDomains()
MBean が現在登録されているドメインのリストを返します。
|
Integer |
getMBeanCount()
MBean サーバーに登録されている MBean の数を返します。
|
MBeanInfo |
getMBeanInfo(ObjectName name)
このメソッドは、MBean が管理用として公開している属性とオペレーションを検出します。
|
ObjectInstance |
getObjectInstance(ObjectName name)
MBean に登録された、指定された MBean の
ObjectInstance を取得します。 |
Object |
instantiate(String className)
MBean サーバーの
Class Loader Repository 内に登録されたすべてのクラスローダのリストを使って、オブジェクトをインスタンス化します。 |
Object |
instantiate(String className, Object[] params, String[] signature)
MBean サーバーの
Class Loader Repository 内に登録されたすべてのクラスローダのリストを使って、オブジェクトをインスタンス化します。 |
Object |
instantiate(String className, ObjectName loaderName)
ObjectName で指定されたクラスローダーを使って、オブジェクトをインスタンス化します。 |
Object |
instantiate(String className, ObjectName loaderName, Object[] params, String[] signature)
オブジェクトをインスタンス化します。
|
Object |
invoke(ObjectName name, String operationName, Object[] params, String[] signature)
MBean上でオペレーションを呼び出します。
|
boolean |
isInstanceOf(ObjectName name, String className)
指定された MBean が指定されたクラスのインスタンスである場合は true、そうでない場合は false を返します。
|
boolean |
isRegistered(ObjectName name)
このオブジェクト名で識別される MBean が、すでに MBean サーバーに登録されているかどうかをチェックします。
|
Set<ObjectInstance> |
queryMBeans(ObjectName name, QueryExp query)
MBean サーバーによって制御される MBean を取得します。
|
Set<ObjectName> |
queryNames(ObjectName name, QueryExp query)
MBean サーバーによって制御される MBean の名前を取得します。
|
ObjectInstance |
registerMBean(Object object, ObjectName name)
既存のオブジェクトを MBean として MBean サーバーに登録します。
|
void |
removeNotificationListener(ObjectName name, NotificationListener listener)
登録済み MBean からリスナーを削除します。
|
void |
removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback)
登録済み MBean からリスナーを削除します。
|
void |
removeNotificationListener(ObjectName name, ObjectName listener)
登録済み MBean からリスナーを削除します。
|
void |
removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback)
登録済み MBean からリスナーを削除します。
|
void |
setAttribute(ObjectName name, Attribute attribute)
指定された MBean の特定の属性の値を設定します。
|
AttributeList |
setAttributes(ObjectName name, AttributeList attributes)
指定された MBean の複数の属性の値を設定します。
|
void |
unregisterMBean(ObjectName name)
MBean サーバーから MBean の登録を解除します。
|
ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException
MBean をインスタンス化し、MBean サーバーに登録します。MBean サーバーは、Default Loader Repositoryを使って、この MBean のクラスをロードします。MBean にはオブジェクト名が関連付けられます。このオブジェクト名が null の場合、MBean は、MBeanRegistration インタフェースを実装し、preRegister メソッドから返される独自の名前を使用する必要があります。
このメソッドは、createMBean(className, name, (Object[]) null, (String[]) null) と同等です。
このメソッドが MBean の作成に成功すると、前述の通知が送信されます。
createMBean、インタフェース: MBeanServerConnectionclassName - インスタンス化する MBean のクラス名。name - MBean のオブジェクト名。null も可。ObjectName と Java クラス名を含む ObjectInstance。含まれる ObjectName が n の場合、含まれる Java クラス名は getMBeanInfo(n).getClassName()。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータに渡される className が null であるか、パラメータに渡される ObjectName がパターンであるか、MBean に ObjectName が指定されていない場合。RuntimeMBeanException - MBean のコンストラクタ、あるいはその preRegister または postRegister メソッドが RuntimeException をスローした場合。MBean の postRegister (MBeanRegistration インタフェース) メソッドが RuntimeException をスローすると、MBean の作成と登録は成功しますが、createMBean メソッドは RuntimeMBeanException をスローします。このような場合、createMBean メソッドが例外をスローしたとしても、MBean は実際に登録されます。RuntimeMBeanException は preRegister でもスローされますが、その場合は MBean は登録されません。RuntimeErrorException - MBean の postRegister (MBeanRegistration インタフェース) メソッドが Error をスローすると、MBean の作成と登録は成功しますが、createMBean メソッドは RuntimeErrorException をスローします。このような場合、createMBean メソッドが例外をスローしたとしても、MBean は実際に登録されます。RuntimeErrorException は preRegister でもスローされますが、その場合は MBean は登録されません。ReflectionException - MBean のコンストラクタの呼び出し時に発行される java.lang.ClassNotFoundException または java.lang.Exception をラップする場合。InstanceAlreadyExistsException - MBean がすでに MBean サーバーによって制御されている場合。MBeanRegistrationException - MBean の preRegister (MBeanRegistration インタフェース) メソッドが例外をスローした場合。MBean は登録されない。MBeanException - MBean のコンストラクタが例外をスローした場合NotCompliantMBeanException - このクラスが JMX 準拠の MBean でない場合MBeanRegistrationObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException
MBean をインスタンス化し、MBean サーバーに登録します。使用するクラスローダーは、オブジェクト名で識別されます。MBean にはオブジェクト名が関連付けられます。ローダーのオブジェクト名が null の場合、MBean サーバーのロードに使用した ClassLoader が使用されます。MBean のオブジェクト名が null の場合、MBean は、MBeanRegistration インタフェースを実装し、preRegister メソッドから返される独自の名前を使用する必要があります。
このメソッドは、createMBean(className, name, loaderName, (Object[]) null, (String[]) null) と同等です。
このメソッドが MBean の作成に成功すると、前述の通知が送信されます。
createMBean、インタフェース: MBeanServerConnectionclassName - インスタンス化する MBean のクラス名。name - MBean のオブジェクト名。null も可。loaderName - 使用するクラスローダーのオブジェクト名。ObjectName と Java クラス名を含む ObjectInstance。含まれる ObjectName が n の場合、含まれる Java クラス名は getMBeanInfo(n).getClassName()。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータに渡される className が null であるか、パラメータに渡される ObjectName がパターンであるか、MBean に ObjectName が指定されていない場合。RuntimeMBeanException - MBean のコンストラクタ、あるいはその preRegister または postRegister メソッドが RuntimeException をスローした場合。MBean の postRegister (MBeanRegistration インタフェース) メソッドが RuntimeException をスローすると、MBean の作成と登録は成功しますが、createMBean メソッドは RuntimeMBeanException をスローします。このような場合、createMBean メソッドが例外をスローしたとしても、MBean は実際に登録されます。RuntimeMBeanException は preRegister でもスローされますが、その場合は MBean は登録されません。RuntimeErrorException - MBean の postRegister (MBeanRegistration インタフェース) メソッドが Error をスローすると、MBean の作成と登録は成功しますが、createMBean メソッドは RuntimeErrorException をスローします。このような場合、createMBean メソッドが例外をスローしたとしても、MBean は実際に登録されます。RuntimeErrorException は preRegister でもスローされますが、その場合は MBean は登録されません。ReflectionException - MBean のコンストラクタの呼び出し時に発行される java.lang.ClassNotFoundException または java.lang.Exception をラップする場合。InstanceAlreadyExistsException - MBean がすでに MBean サーバーによって制御されている場合。MBeanRegistrationException - MBean の preRegister (MBeanRegistration インタフェース) メソッドが例外をスローした場合。MBean は登録されない。MBeanException - MBean のコンストラクタが例外をスローした場合NotCompliantMBeanException - このクラスが JMX 準拠の MBean でない場合InstanceNotFoundException - 指定されたクラスローダーが MBean サーバーに登録されていない場合。MBeanRegistrationObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException
Default Loader Repositoryを使って、この MBean のクラスをロードします。MBean にはオブジェクト名が関連付けられます。このオブジェクト名が null の場合、MBean は、MBeanRegistration インタフェースを実装し、preRegister メソッドから返される独自の名前を使用する必要があります。
このメソッドが MBean の作成に成功すると、前述の通知が送信されます。
createMBean、インタフェース: MBeanServerConnectionclassName - インスタンス化する MBean のクラス名。name - MBean のオブジェクト名。null も可。params - 呼び出されるコンストラクタのパラメータを含む配列。signature - 呼び出されるコンストラクタのシグニチャーを含む配列。ObjectName と Java クラス名を含む ObjectInstance。含まれる ObjectName が n の場合、含まれる Java クラス名は getMBeanInfo(n).getClassName()。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータに渡される className が null であるか、パラメータに渡される ObjectName がパターンであるか、MBean に ObjectName が指定されていない場合。RuntimeMBeanException - MBean のコンストラクタ、あるいはその preRegister または postRegister メソッドが RuntimeException をスローした場合。MBean の postRegister (MBeanRegistration インタフェース) メソッドが RuntimeException をスローすると、MBean の作成と登録は成功しますが、createMBean メソッドは RuntimeMBeanException をスローします。このような場合、createMBean メソッドが例外をスローしたとしても、MBean は実際に登録されます。RuntimeMBeanException は preRegister でもスローされますが、その場合は MBean は登録されません。RuntimeErrorException - MBean の postRegister (MBeanRegistration インタフェース) メソッドが Error をスローすると、MBean の作成と登録は成功しますが、createMBean メソッドは RuntimeErrorException をスローします。このような場合、createMBean メソッドが例外をスローしたとしても、MBean は実際に登録されます。RuntimeErrorException は preRegister でもスローされますが、その場合は MBean は登録されません。ReflectionException - MBean のコンストラクタの呼び出し時に発行される java.lang.ClassNotFoundException または java.lang.Exception をラップする場合。InstanceAlreadyExistsException - MBean がすでに MBean サーバーによって制御されている場合。MBeanRegistrationException - MBean の preRegister (MBeanRegistration インタフェース) メソッドが例外をスローした場合。MBean は登録されない。MBeanException - MBean のコンストラクタが例外をスローした場合NotCompliantMBeanException - このクラスが JMX 準拠の MBean でない場合MBeanRegistrationObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException
MBean をインスタンス化し、MBean サーバーに登録します。使用するクラスローダーは、オブジェクト名で識別されます。MBean にはオブジェクト名が関連付けられます。ローダーのオブジェクト名が指定されていない場合、MBean サーバーのロードに使用した ClassLoader が使用されます。MBean のオブジェクト名が null の場合、MBean は、MBeanRegistration インタフェースを実装し、preRegister メソッドから返される独自の名前を使用する必要があります。
このメソッドが MBean の作成に成功すると、前述の通知が送信されます。
createMBean、インタフェース: MBeanServerConnectionclassName - インスタンス化する MBean のクラス名。name - MBean のオブジェクト名。null も可。loaderName - 使用するクラスローダーのオブジェクト名。params - 呼び出されるコンストラクタのパラメータを含む配列。signature - 呼び出されるコンストラクタのシグニチャーを含む配列。ObjectName と Java クラス名を含む ObjectInstance。含まれる ObjectName が n の場合、含まれる Java クラス名は getMBeanInfo(n).getClassName()。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータに渡される className が null であるか、パラメータに渡される ObjectName がパターンであるか、MBean に ObjectName が指定されていない場合。RuntimeMBeanException - MBean のコンストラクタ、あるいはその preRegister または postRegister メソッドが RuntimeException をスローした場合。MBean の postRegister (MBeanRegistration インタフェース) メソッドが RuntimeException をスローすると、MBean の作成と登録は成功しますが、createMBean メソッドは RuntimeMBeanException をスローします。このような場合、createMBean メソッドが例外をスローしたとしても、MBean は実際に登録されます。RuntimeMBeanException は preRegister でもスローされますが、その場合は MBean は登録されません。RuntimeErrorException - MBean の postRegister メソッド (MBeanRegistration インタフェース) メソッドが Error をスローすると、MBean の作成と登録は成功しますが、createMBean メソッドは RuntimeErrorException をスローします。このような場合、createMBean メソッドが例外をスローしたとしても、MBean は実際に登録されます。RuntimeErrorException は preRegister でもスローされますが、その場合は MBean は登録されません。ReflectionException - MBean のコンストラクタの呼び出し時に発行される java.lang.ClassNotFoundException または java.lang.Exception をラップする場合。InstanceAlreadyExistsException - MBean がすでに MBean サーバーによって制御されている場合。MBeanRegistrationException - MBean の preRegister (MBeanRegistration インタフェース) メソッドが例外をスローした場合。MBean は登録されない。MBeanException - MBean のコンストラクタが例外をスローした場合NotCompliantMBeanException - このクラスが JMX 準拠の MBean でない場合InstanceNotFoundException - 指定されたクラスローダーが MBean サーバーに登録されていない場合。MBeanRegistrationObjectInstance registerMBean(Object object, ObjectName name) throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException
既存のオブジェクトを MBean として MBean サーバーに登録します。このオブジェクト名が null の場合、MBean は、MBeanRegistration インタフェースを実装し、preRegister メソッドから返される独自の名前を使用する必要があります。
このメソッドが MBean の登録に成功すると、前述の通知が送信されます。
object - MBean として登録される MBean。name - MBean のオブジェクト名。null も可。ObjectName と Java クラス名を含む ObjectInstance。含まれる ObjectName が n の場合、含まれる Java クラス名は getMBeanInfo(n).getClassName()。InstanceAlreadyExistsException - MBean がすでに MBean サーバーによって制御されている場合。MBeanRegistrationException - MBean の preRegister (MBeanRegistration インタフェース) メソッドが例外をスローした場合。MBean は登録されない。RuntimeMBeanException - MBean の postRegister (MBeanRegistration インタフェース) メソッドが RuntimeException をスローすると、MBean の登録は成功しますが、registerMBean メソッドは RuntimeMBeanException をスローします。このような場合、registerMBean メソッドが例外をスローしたとしても、MBean は実際に登録されます。RuntimeMBeanException は preRegister でもスローされますが、その場合は MBean は登録されません。RuntimeErrorException - MBean の postRegister (MBeanRegistration インタフェース) メソッドが Error をスローすると、MBean の登録は成功しますが、registerMBean メソッドは RuntimeErrorException をスローします。このような場合、registerMBean メソッドが例外をスローしたとしても、MBean は実際に登録されます。RuntimeErrorException は preRegister でもスローされますが、その場合は MBean は登録されません。NotCompliantMBeanException - このオブジェクトが JMX 準拠の MBean でない場合RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータに渡されるオブジェクトが null であるか、オブジェクト名が指定されていない場合。MBeanRegistrationvoid unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException
このメソッドが MBean の登録解除に成功すると、前述の通知が送信されます。
unregisterMBean、インタフェース: MBeanServerConnectionname - 登録解除する MBean のオブジェクト名。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータ内のオブジェクト名が null であるか、登録解除しようとしている MBean が MBeanServerDelegate である場合。RuntimeMBeanException - MBean の postDeregister (MBeanRegistration インタフェース) メソッドが RuntimeException をスローすると、MBean の登録解除は成功しますが、unregisterMBean メソッドは RuntimeMBeanException をスローします。このような場合、unregisterMBean メソッドが例外をスローしたとしても、MBean は実際に登録解除されます。RuntimeMBeanException は preDeregister でもスローされますが、その場合は MBean の登録は解除されません。RuntimeErrorException - MBean の postDeregister (MBeanRegistration インタフェース) メソッドが Error をスローすると、MBean の登録解除は成功しますが、unregisterMBean メソッドは RuntimeErrorException をスローします。このような場合、unregisterMBean メソッドが例外をスローしたとしても、MBean は実際に登録解除されます。RuntimeMBeanException は preDeregister でもスローされますが、その場合は MBean の登録は解除されません。InstanceNotFoundException - 指定された MBean が MBean サーバーに登録されていない場合。MBeanRegistrationException - MBean の preDeregister (MBeanRegistration インタフェース) メソッドが例外をスローした場合。MBeanRegistrationObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException
MBeanServerConnectionObjectInstance を取得します。getObjectInstance、インタフェース: MBeanServerConnectionname - MBean のオブジェクト名。ObjectInstance。含まれる ObjectName は name で、含まれるクラス名は getMBeanInfo(name).getClassName()。InstanceNotFoundException - 指定された MBean が MBean サーバーに登録されていない場合。Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query)
ObjectName やクエリー式のパターンマッチングによって指定された MBean のセット、特定の MBean のいずれかを返します。オブジェクト名が null である場合、またはドメインやキーのプロパティーが指定されていない場合、すべてのオブジェクトが選択されます。クエリーが指定されている場合は、さらにフィルタリングが適用されます。このメソッドは、選択された MBean に対して、ObjectInstance オブジェクトのセット (ObjectName と Java クラス名を含む) を返します。queryMBeans、インタフェース: MBeanServerConnectionname - 取得する MBean を識別するオブジェクト名パターン。null の場合、またはドメインやキーのプロパティーが指定されていない場合は、登録されているすべての MBean が取得される。query - MBean の選択に適用されるクエリー式。null の場合、MBean の選択にクエリー式は適用されない。ObjectInstance オブジェクトを含むセット。クエリーの条件を満たす MBean が存在しない場合、空のリストが返される。RuntimeOperationsExceptionSet<ObjectName> queryNames(ObjectName name, QueryExp query)
ObjectName や Query 式のパターンマッチングによって指定された MBean のセットの名前、特定の MBean の名前のいずれかを返します。これにより、MBean が登録されているかどうかを判別できます。オブジェクト名が null である場合、またはドメインやキーのプロパティーが指定されていない場合、すべてのオブジェクトが選択されます。クエリーが指定されている場合は、さらにフィルタリングが適用されます。このメソッドは、選択された MBean に対して、ObjectName のセットを返します。queryNames、インタフェース: MBeanServerConnectionname - 取得する MBean 名を識別するオブジェクト名パターン。null の場合、またはドメインやキーのプロパティーが指定されていない場合は、登録されているすべての MBean の名前が取得される。query - MBean の選択に適用されるクエリー式。null の場合、MBean の選択にクエリー式は適用されない。RuntimeOperationsExceptionboolean isRegistered(ObjectName name)
MBeanServerConnectionisRegistered、インタフェース: MBeanServerConnectionname - チェック対象の MBean のオブジェクト名。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータ内のオブジェクト名が null の場合。Integer getMBeanCount()
getMBeanCount、インタフェース: MBeanServerConnectionObject getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
MBeanServerConnectiongetAttribute、インタフェース: MBeanServerConnectionname - MBean のオブジェクト名。この MBean の属性が取得される。attribute - 取得される属性の名前を指定する String。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータ内のオブジェクト名が null であるか、パラメータ内の属性が null である場合。MBeanException - MBean の getter によってスローされる例外をラップする場合。AttributeNotFoundException - MBean の指定された属性がアクセス不能である場合。InstanceNotFoundException - 指定された MBean が MBean サーバーに登録されていない場合。ReflectionException - setter の呼び出し時にスローされる java.lang.Exception をラップする場合。MBeanServerConnection.setAttribute(javax.management.ObjectName, javax.management.Attribute)AttributeList getAttributes(ObjectName name, String[] attributes) throws InstanceNotFoundException, ReflectionException
MBeanServerConnection指定された MBean の複数の属性の値を取り出します。MBean はオブジェクト名で識別されます。
何らかの理由で 1 つ以上の属性を取得できない場合、それらは返される AttributeList から省略されます。呼び出し側はリストが attributes 配列と同じサイズであることを確認する必要があります。属性の取得を妨げた問題を見つけるには、その属性の getAttribute を呼び出します。
このメソッドを呼び出して、要求されたすべての属性を正常に取得できたことを確認する例を次に示します。
String[] attrNames = ...;
AttributeList list = mbeanServerConnection.getAttributes(objectName, attrNames);
if (list.size() == attrNames.length)
System.out.println("All attributes were retrieved successfully");
else {
List<String> missing = new ArrayList<String>(Arrays.asList(attrNames));
for (Attribute a : list.asList())
missing.remove(a.getName());
System.out.println("Did not retrieve: " + missing);
}
getAttributes、インタフェース: MBeanServerConnectionname - MBean のオブジェクト名。この MBean の属性が取得される。attributes - 取得される属性のリスト。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータ内のオブジェクト名が null であるか、パラメータ内の属性が null である場合。InstanceNotFoundException - 指定された MBean が MBean サーバーに登録されていない場合。ReflectionException - Dynamic MBean の getAttributes メソッドの呼び出し時に例外が発生した場合。MBeanServerConnection.setAttributes(javax.management.ObjectName, javax.management.AttributeList)void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
MBeanServerConnectionsetAttribute、インタフェース: MBeanServerConnectionname - MBean 名。この MBean の属性が設定される。attribute - 設定される属性の ID と設定される値。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータ内のオブジェクト名が null であるか、パラメータ内の属性が null である場合。InstanceNotFoundException - 指定された MBean が MBean サーバーに登録されていない場合。AttributeNotFoundException - MBean の指定された属性がアクセス不能である場合。InvalidAttributeValueException - 指定された値が、属性に対する有効な値でない場合。MBeanException - MBean の setter によってスローされる例外をラップする場合。ReflectionException - setter の呼び出し時にスローされる java.lang.Exception をラップする場合。MBeanServerConnection.getAttribute(javax.management.ObjectName, java.lang.String)AttributeList setAttributes(ObjectName name, AttributeList attributes) throws InstanceNotFoundException, ReflectionException
MBeanServerConnection指定された MBean の複数の属性の値を設定します。MBean はオブジェクト名で識別されます。
何らかの理由で 1 つ以上の属性を設定できない場合、それらは返される AttributeList から省略されます。呼び出し側は入力の AttributeList が出力のそれと同じサイズであることを確認する必要があります。属性の取得を妨げた問題の発見は、通常、その属性の setAttribute を呼び出すことで可能ですが、必ずしも成功する保証はありません。たとえば、2 つの属性の値が互いに矛盾するために拒否された可能性があります。どちらか 1 つであれば、設定できる可能性があります。
このメソッドを呼び出して、要求されたすべての属性を正常に設定できたことを確認する例を次に示します。
AttributeList inputAttrs = ...;
AttributeList outputAttrs = mbeanServerConnection.setAttributes(objectName, inputAttrs);
if (inputAttrs.size() == outputAttrs.size())
System.out.println("All attributes were set successfully");
else {
List<String> missing = new ArrayList<String>();
for (Attribute a : inputAttrs.asList())
missing.add(a.getName());
for (Attribute a : outputAttrs.asList())
missing.remove(a.getName());
System.out.println("Did not set: " + missing);
}
setAttributes、インタフェース: MBeanServerConnectionname - MBean のオブジェクト名。この MBean の属性が設定される。attributes - 属性のリスト。属性のリスト (設定される属性の ID と設定される値)。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータ内のオブジェクト名が null であるか、パラメータ内の属性が null である場合。InstanceNotFoundException - 指定された MBean が MBean サーバーに登録されていない場合。ReflectionException - Dynamic MBean の getAttributes メソッドの呼び出し時に例外が発生した場合。MBeanServerConnection.getAttributes(javax.management.ObjectName, java.lang.String[])Object invoke(ObjectName name, String operationName, Object[] params, String[] signature) throws InstanceNotFoundException, MBeanException, ReflectionException
MBeanServerConnectionMBean上でオペレーションを呼び出します。
オーバーロードされる可能性があるオペレーションを区別するために signature が必要であるため、可能な場合は、MBean プロキシを介してさらに簡単にオペレーションを呼び出すことができます。たとえば、次のような Standard MBean インタフェースが存在する場合を考えましょう。
public interface FooMBean {
public int countMatches(String[] patterns, boolean ignoreCase);
}
countMatches オペレーションは次のようにして呼び出すことができます。
String[] myPatterns = ...;
int count = (Integer) mbeanServerConnection.invoke(
objectName,
"countMatches",
new Object[] {myPatterns, true},
new String[] {String[].class.getName(), boolean.class.getName()});
または、次のようにプロキシを介して呼び出すこともできます。
String[] myPatterns = ...;
FooMBean fooProxy = JMX.newMBeanProxy(
mbeanServerConnection, objectName, FooMBean.class);
int count = fooProxy.countMatches(myPatterns, true);
invoke、インタフェース: MBeanServerConnectionname - メソッドの呼び出しが行われる MBean のオブジェクト名。operationName - 呼び出されるオペレーションの名前。params - オペレーションの呼び出し時に設定されるパラメータを含む配列。signature - オペレーションのシグニチャーを含む配列 (Class.getName() から返される形式のクラス名の配列)。クラスオブジェクトのロードには、オペレーションを呼び出した MBean をロードするときと同じクラスローダーが使用される。InstanceNotFoundException - 指定された MBean が MBean サーバーに登録されていない場合。MBeanException - MBean の呼び出しメソッドによってスローされる例外をラップする場合。ReflectionException - メソッドの呼び出し時にスローされる java.lang.Exception をラップする場合。String getDefaultDomain()
MBeanServerConnectiongetDefaultDomain、インタフェース: MBeanServerConnectionString[] getDomains()
MBeanServerConnectionMBean が現在登録されているドメインのリストを返します。返される配列内に文字列が含まれるのは、その文字列と等しい getDomain() を持つ ObjectName に 1 個以上の MBean が登録されている場合だけです。返される配列内の文字列の順序は未定義です。
getDomains、インタフェース: MBeanServerConnectionvoid addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException
登録済み MBean にリスナーを追加します。MBean が発行した通知は、リスナーに転送されます。
通知のソースが MBean オブジェクトの参照になっている場合、MBean サーバーは、これを MBean の ObjectName で置き換えます。それ以外の場合、ソースが変更されることはありません。addNotificationListener、インタフェース: MBeanServerConnectionname - リスナーが追加される MBean の名前。listener - 登録済み MBean が発行した通知を処理するリスナーオブジェクト。filter - フィルタオブジェクト。フィルタが null の場合、通知処理の前にフィルタは適用されない。handback - 通知が発行されたときリスナーに送信されるコンテキスト。InstanceNotFoundException - 登録済み MBean の中に、指定された MBean 名がない場合。MBeanServerConnection.removeNotificationListener(ObjectName, NotificationListener), MBeanServerConnection.removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException
登録済み MBean にリスナーを追加します。
MBean が発行した通知は、MBeanServer によってリスナーに転送されます。通知のソースが MBean オブジェクトの参照になっている場合、MBean サーバーは、これを MBean の ObjectName で置き換えます。それ以外の場合、ソースが変更されることはありません。
通知を受け取るリスナーオブジェクトは、このメソッドの呼び出し時に指定された名前で登録されたリスナーオブジェクトです。その後は登録しなくても引き続き通知を受け取ります。
addNotificationListener、インタフェース: MBeanServerConnectionname - リスナーが追加される MBean の名前。listener - 登録済み MBean が発行した通知を処理するリスナーのオブジェクト名。filter - フィルタオブジェクト。フィルタが null の場合、通知処理の前にフィルタは適用されない。handback - 通知が発行されたときリスナーに送信されるコンテキスト。RuntimeOperationsException - IllegalArgumentException をラップする場合。listener によって指定された MBean が存在していても、NotificationListener インタフェースを実装していない場合。InstanceNotFoundException - 登録済み MBean の中に、通知リスナーまたは通知ブロードキャスタの MBean 名がない場合。MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName), MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)void removeNotificationListener(ObjectName name, ObjectName listener) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnectionリスナーが、別のフィルタまたはコールバックにより複数回登録された場合、このメソッドは、これらすべての登録を削除します。
removeNotificationListener、インタフェース: MBeanServerConnectionname - リスナーが削除される MBean の名前。listener - 削除されるリスナーのオブジェクト名。InstanceNotFoundException - 登録済み MBean の中に、指定された MBean 名がない場合。ListenerNotFoundException - リスナーが MBean に登録されていない場合。MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnection登録済み MBean からリスナーを削除します。
MBean は、指定された listener、filter、および handback パラメータと正確に一致するリスナーを持っている必要があります。該当するリスナーが複数存在する場合、そのうちの 1 つだけが削除されます。
削除されるリスナー内で null が指定されている場合にのみ、filter および handback パラメータは null になります。
removeNotificationListener、インタフェース: MBeanServerConnectionname - リスナーが削除される MBean の名前。listener - 削除されるリスナーのオブジェクト名。filter - リスナーの追加時に指定されたフィルタ。handback - リスナーの追加時に指定されたハンドバック。InstanceNotFoundException - 登録済み MBean の中に、指定された MBean 名がない場合。ListenerNotFoundException - リスナーが MBean に登録されていない場合、または指定されたフィルタおよびハンドバックで登録されていない場合。MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)void removeNotificationListener(ObjectName name, NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnection登録済み MBean からリスナーを削除します。
リスナーが、別のフィルタまたはコールバックにより複数回登録された場合、このメソッドは、これらすべての登録を削除します。
removeNotificationListener、インタフェース: MBeanServerConnectionname - リスナーが削除される MBean の名前。listener - 削除されるリスナー。InstanceNotFoundException - 登録済み MBean の中に、指定された MBean 名がない場合。ListenerNotFoundException - リスナーが MBean に登録されていない場合。MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnection登録済み MBean からリスナーを削除します。
MBean は、指定された listener、filter、および handback パラメータと正確に一致するリスナーを持っている必要があります。該当するリスナーが複数存在する場合、そのうちの 1 つだけが削除されます。
削除されるリスナー内で null が指定されている場合にのみ、filter および handback パラメータは null になります。
removeNotificationListener、インタフェース: MBeanServerConnectionname - リスナーが削除される MBean の名前。listener - 削除されるリスナー。filter - リスナーの追加時に指定されたフィルタ。handback - リスナーの追加時に指定されたハンドバック。InstanceNotFoundException - 登録済み MBean の中に、指定された MBean 名がない場合。ListenerNotFoundException - リスナーが MBean に登録されていない場合、または指定されたフィルタおよびハンドバックで登録されていない場合。MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ReflectionException
MBeanServerConnectiongetMBeanInfo、インタフェース: MBeanServerConnectionname - 分析対象の MBean の名前。MBeanInfo のインスタンス。この MBean のすべての属性とオペレーションの取得を許可する。InstanceNotFoundException - 指定された MBean が見つからなかった場合。IntrospectionException - イントロスペクション中に例外が発生した場合。ReflectionException - Dynamic MBean の getMBeanInfo メソッドの呼び出し時に例外が発生した場合。boolean isInstanceOf(ObjectName name, String className) throws InstanceNotFoundException
MBeanServerConnection指定された MBean が指定されたクラスのインスタンスである場合は true、そうでない場合は false を返します。
name が MBean を指定していない場合、このメソッドは InstanceNotFoundException をスローします。
それ以外の場合、
X は name で指定された MBean、
L は X の ClassLoader、
N は X の MBeanInfo 内のクラス名になります。
N が className と等しい場合、結果は true です。
それ以外の場合、L が className を正常にロードし、X がこのクラスのインスタンスである場合、結果は true です。
それ以外の場合、L が N と className の両方を正常にロードし、最初のクラスから 2 番目のクラスを割り当てることができる場合、結果は true です。
それ以外の場合、結果は false です。
isInstanceOf、インタフェース: MBeanServerConnectionname - MBean の ObjectName。className - クラスの名前。InstanceNotFoundException - 指定された MBean が MBean サーバーに登録されていない場合。Class.isInstance(java.lang.Object)Object instantiate(String className) throws ReflectionException, MBeanException
MBean サーバーの Class Loader Repository 内に登録されたすべてのクラスローダのリストを使って、オブジェクトをインスタンス化します。オブジェクトのクラスは、public コンストラクタを持っていなければいけません。このメソッドは、新しく生成されたオブジェクトの参照を返します。新しく生成されたオブジェクトは、MBean サーバーに登録されていません。
このメソッドは、instantiate(className, (Object[]) null, (String[]) null) と同等です。
className - インスタンス化するオブジェクトのクラス名。ReflectionException - オブジェクトのコンストラクタの呼び出し時に発行される java.lang.ClassNotFoundException または java.lang.Exception をラップする場合。MBeanException - オブジェクトのコンストラクタが例外をスローした場合。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータに渡される className が null の場合。Object instantiate(String className, ObjectName loaderName) throws ReflectionException, MBeanException, InstanceNotFoundException
ObjectName で指定されたクラスローダーを使って、オブジェクトをインスタンス化します。ローダー名が null の場合、MBean サーバーのロードに使用された ClassLoader が使用されます。オブジェクトのクラスは、public コンストラクタを持っていなければいけません。このメソッドは、新しく生成されたオブジェクトの参照を返します。新しく生成されたオブジェクトは、MBean サーバーに登録されていません。
このメソッドは、instantiate(className, loaderName, (Object[]) null, (String[]) null) と同等です。
className - インスタンス化する MBean のクラス名。loaderName - 使用するクラスローダーのオブジェクト名。ReflectionException - オブジェクトのコンストラクタの呼び出し時に発行される java.lang.ClassNotFoundException または java.lang.Exception をラップする場合。MBeanException - オブジェクトのコンストラクタが例外をスローした場合。InstanceNotFoundException - 指定されたクラスローダーが MBeanServer に登録されていない場合。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータに渡される className が null の場合。Object instantiate(String className, Object[] params, String[] signature) throws ReflectionException, MBeanException
MBean サーバーの Class Loader Repository 内に登録されたすべてのクラスローダのリストを使って、オブジェクトをインスタンス化します。オブジェクトのクラスは、public コンストラクタを持っていなければいけません。この呼び出しは、新しく生成されたオブジェクトの参照を返します。新しく生成されたオブジェクトは、MBean サーバーに登録されていません。
className - インスタンス化するオブジェクトのクラス名。params - 呼び出されるコンストラクタのパラメータを含む配列。signature - 呼び出されるコンストラクタのシグニチャーを含む配列。ReflectionException - オブジェクトのコンストラクタの呼び出し時に発行される java.lang.ClassNotFoundException または java.lang.Exception をラップする場合。MBeanException - オブジェクトのコンストラクタが例外をスローした場合。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータに渡される className が null の場合。Object instantiate(String className, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, MBeanException, InstanceNotFoundException
オブジェクトをインスタンス化します。使用するクラスローダーは、オブジェクト名で識別されます。ローダーのオブジェクト名が null の場合、MBean サーバーのロードに使用した ClassLoader が使用されます。オブジェクトのクラスは、public コンストラクタを持っていなければいけません。この呼び出しは、新しく生成されたオブジェクトの参照を返します。新しく生成されたオブジェクトは、MBean サーバーに登録されていません。
className - インスタンス化するオブジェクトのクラス名。params - 呼び出されるコンストラクタのパラメータを含む配列。signature - 呼び出されるコンストラクタのシグニチャーを含む配列。loaderName - 使用するクラスローダーのオブジェクト名。ReflectionException - オブジェクトのコンストラクタの呼び出し時に発行される java.lang.ClassNotFoundException または java.lang.Exception をラップする場合。MBeanException - オブジェクトのコンストラクタが例外をスローした場合。InstanceNotFoundException - 指定されたクラスローダーが MBean サーバーに登録されていない場合。RuntimeOperationsException - java.lang.IllegalArgumentException をラップする場合。すなわち、パラメータに渡される className が null の場合。@Deprecated ObjectInputStream deserialize(ObjectName name, byte[] data) throws InstanceNotFoundException, OperationsException
getClassLoaderFor を使って、直列化復元に使用する適切なクラスローダーを取得します。MBean のクラスローダーのコンテキストで、バイト配列を直列化復元します。
name - MBean の名前。この MBean のクラスローダーを使って、直列化復元が行われる。data - 直列化復元の対象となるバイト配列。InstanceNotFoundException - 指定された MBean が見つからない場合。OperationsException - 通常の入出力関連の例外が発生した場合。@Deprecated ObjectInputStream deserialize(String className, byte[] data) throws OperationsException, ReflectionException
getClassLoaderRepository() を使ってクラスローダーリポジトリを取得し、それを使って直列化復元を行います。指定された MBean クラスローダーのコンテキストで、バイト配列の直列化復元を行います。クラスローダーを検索するには、Class Loader Repository を使って className クラスをロードします。このクラスのクラスローダーが使用されます。
className - クラスの名前。このクラスのクラスローダーを使って、直列化復元が行われる。data - 直列化復元の対象となるバイト配列。OperationsException - 通常の入出力関連の例外が発生した場合。ReflectionException - 指定されたクラスがクラスローダーリポジトリにロードされない場合。@Deprecated ObjectInputStream deserialize(String className, ObjectName loaderName, byte[] data) throws InstanceNotFoundException, OperationsException, ReflectionException
getClassLoader を使って、直列化復元に使用するクラスローダーを取得します。指定された MBean クラスローダーのコンテキストで、バイト配列の直列化復元を行います。このクラスローダーは、className という名前でクラスをロードしたクラスローダーです。指定されたクラスのロードに使用されたクラスローダーの名前が使用されます。null の場合、MBean サーバーのクラスローダーが使用される。
className - クラスの名前。このクラスのクラスローダーを使って、直列化復元が行われる。data - 直列化復元の対象となるバイト配列。loaderName - 指定されたクラスのロードに使用されるクラスローダーの名前。null の場合、MBean サーバーのクラスローダーが使用される。InstanceNotFoundException - 指定されたクラスローダー MBean が見つからない場合。OperationsException - 通常の入出力関連の例外が発生した場合。ReflectionException - 指定されたクラスが指定されたクラスローダーによってロードされない場合。ClassLoader getClassLoaderFor(ObjectName mbeanName) throws InstanceNotFoundException
指定された MBean のクラスのロードに使用された ClassLoader を返します。
mbeanName - MBean の ObjectName。.loadClass(s) の結果が任意の文字列 s の l.loadClass(s) に一致。
InstanceNotFoundException - 指定された MBean が見つからない場合。ClassLoader getClassLoader(ObjectName loaderName) throws InstanceNotFoundException
指定された ClassLoader を返します。
loaderName - ClassLoader の ObjectName。null の場合、MBean サーバー固有の ClassLoader が返される。.loadClass(s) の結果が任意の文字列 s の l.loadClass(s) に一致。
InstanceNotFoundException - 指定された ClassLoader が見つからない場合。ClassLoaderRepository getClassLoaderRepository()
この MBeanServer の ClassLoaderRepository を返します。
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.