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と呼び出すようにしてください。この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)
非推奨。
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, 2014, Oracle and/or its affiliates. All rights reserved.