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
、インタフェース: MBeanServerConnection
className
- インスタンス化する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でない場合MBeanRegistration
ObjectInstance 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
、インタフェース: MBeanServerConnection
className
- インスタンス化する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サーバーに登録されていない場合。MBeanRegistration
ObjectInstance 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
、インタフェース: MBeanServerConnection
className
- インスタンス化する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でない場合MBeanRegistration
ObjectInstance 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
、インタフェース: MBeanServerConnection
className
- インスタンス化する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サーバーに登録されていない場合。MBeanRegistration
ObjectInstance 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であるか、オブジェクト名が指定されていない場合。MBeanRegistration
void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException
このメソッドがMBeanの登録解除に成功すると、前述の通知が送信されます。
unregisterMBean
、インタフェース: MBeanServerConnection
name
- 登録解除する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
インタフェース)メソッドが例外をスローした場合。MBeanRegistration
ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException
MBeanServerConnection
ObjectInstance
を取得します。getObjectInstance
、インタフェース: MBeanServerConnection
name
- 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
、インタフェース: MBeanServerConnection
name
- 取得するMBeanを識別するオブジェクト名パターン。nullの場合、またはドメインやキーのプロパティが指定されていない場合は、登録されているすべてのMBeanが取得される。query
- MBeanの選択に適用されるクエリー式。nullの場合、MBeanの選択にクエリー式は適用されない。ObjectInstance
オブジェクトを含むセット。クエリーの条件を満たすMBeanが存在しない場合、空のリストが返される。RuntimeOperationsException
Set<ObjectName> queryNames(ObjectName name, QueryExp query)
ObjectName
やQuery式のパターン・マッチングによって指定されたMBeanのセットの名前、特定のMBeanの名前のいずれかを返します。これにより、MBeanが登録されているかどうかを判別できます。オブジェクト名がnullである場合、またはドメインやキーのプロパティが指定されていない場合、すべてのオブジェクトが選択されます。クエリーが指定されている場合は、さらにフィルタリングが適用されます。このメソッドは、選択されたMBeanに対して、ObjectNameのセットを返します。queryNames
、インタフェース: MBeanServerConnection
name
- 取得するMBean名を識別するオブジェクト名パターン。nullの場合、またはドメインやキーのプロパティが指定されていない場合は、登録されているすべてのMBeanの名前が取得される。query
- MBeanの選択に適用されるクエリー式。nullの場合、MBeanの選択にクエリー式は適用されない。RuntimeOperationsException
boolean isRegistered(ObjectName name)
MBeanServerConnection
isRegistered
、インタフェース: MBeanServerConnection
name
- チェック対象のMBeanのオブジェクト名。RuntimeOperationsException
- java.lang.IllegalArgumentException
をラップする場合。すなわち、パラメータ内のオブジェクト名がnullの場合。Integer getMBeanCount()
getMBeanCount
、インタフェース: MBeanServerConnection
Object getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
MBeanServerConnection
getAttribute
、インタフェース: MBeanServerConnection
name
- 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 = newArrayList<String>
(Arrays.asList
(attrNames)); for (Attribute a : list.asList()) missing.remove(a.getName()); System.out.println("Did not retrieve: " + missing); }
getAttributes
、インタフェース: MBeanServerConnection
name
- 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
MBeanServerConnection
setAttribute
、インタフェース: MBeanServerConnection
name
- 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 = newArrayList<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
、インタフェース: MBeanServerConnection
name
- 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
MBeanServerConnection
MBean上でオペレーションを呼び出します。
オーバーロードされる可能性があるオペレーションを区別するために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
、インタフェース: MBeanServerConnection
name
- メソッドの呼出しが行われるMBeanのオブジェクト名。operationName
- 呼び出されるオペレーションの名前。params
- オペレーションの呼出し時に設定されるパラメータを含む配列。signature
- オペレーションのシグニチャを含む配列(Class.getName()
から返される形式のクラス名の配列)。クラス・オブジェクトのロードには、オペレーションを呼び出したMBeanをロードするときと同じクラス・ローダーが使用される。InstanceNotFoundException
- 指定されたMBeanがMBeanサーバーに登録されていない場合。MBeanException
- MBeanの呼出しメソッドによってスローされる例外をラップする場合。ReflectionException
- メソッドの呼出し時にスローされるjava.lang.Exception
をラップする場合。String getDefaultDomain()
MBeanServerConnection
getDefaultDomain
、インタフェース: MBeanServerConnection
String[] getDomains()
MBeanServerConnection
MBeanが現在登録されているドメインのリストを返します。返される配列内に文字列が含まれるのは、その文字列と等しいgetDomain()
を持つObjectNameに1個以上のMBeanが登録されている場合だけです。返される配列内の文字列の順序は未定義です。
getDomains
、インタフェース: MBeanServerConnection
void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException
登録済みMBeanにリスナーを追加します。MBeanが発行した通知は、リスナーに転送されます。
通知のソースがMBeanオブジェクトの参照になっている場合、MBeanサーバーは、これをMBeanのObjectNameで置き換えます。それ以外の場合、ソースが変更されることはありません。addNotificationListener
、インタフェース: MBeanServerConnection
name
- リスナーが追加される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
、インタフェース: MBeanServerConnection
name
- リスナーが追加される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
、インタフェース: MBeanServerConnection
name
- リスナーが削除される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
、インタフェース: MBeanServerConnection
name
- リスナーが削除される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
、インタフェース: MBeanServerConnection
name
- リスナーが削除される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
、インタフェース: MBeanServerConnection
name
- リスナーが削除されるMBeanの名前。listener
- 削除されるリスナー。filter
- リスナーの追加時に指定されたフィルタ。handback
- リスナーの追加時に指定されたハンドバック。InstanceNotFoundException
- 登録済みMBeanの中に、指定されたMBean名がない場合。ListenerNotFoundException
- リスナーがMBeanに登録されていない場合、または指定されたフィルタおよびハンドバックで登録されていない場合。MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ReflectionException
MBeanServerConnection
getMBeanInfo
、インタフェース: MBeanServerConnection
name
- 分析対象の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
、インタフェース: MBeanServerConnection
name
- 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.