public class JMXConnectorFactory extends Object
JMX APIコネクタ・クライアントを作成するファクトリです。 このクラスのインスタンスは存在しません。
通常、接続は、このクラスのconnect
メソッドにより確立されます。 高度なアプリケーションでは、コネクタ・クライアントの作成(newJMXConnector
を使用)と接続自体の確立(JMXConnector.connect(Map)
を使用)を分けることができます。
各クライアントは、JMXConnectorProvider
のインスタンスによって作成されます。 このインスタンスは次のようにして見つけられます。 指定されたJMXServiceURL
が"service:jmx:protocol:remainder"
のようだったとします。 ファクトリは、そのprotocol
に適切なJMXConnectorProvider
の検索を行います。 protocol
に含まれる文字+
と-
は、それぞれ.
と_
で置き換えられます。
プロバイダ・パッケージ・リストの検索手順は次のとおりです。
newJMXConnector
のenvironment
パラメータにキーjmx.remote.protocol.provider.pkgs
が含まれる場合、関連付けられている値がプロバイダ・パッケージ・リストになります。- それ以外の場合で、システム・プロパティ
jmx.remote.protocol.provider.pkgs
が存在する場合、その値がプロバイダ・パッケージ・リストになります。 - それ以外の場合、プロバイダ・パッケージ・リストは存在しません。
プロバイダ・パッケージ・リストは、縦棒(|
)で区切られた空でないJavaパッケージ名のリストと解釈される文字列です。 この文字列が空の場合、プロバイダ・パッケージ・リストも空になります。 プロバイダ・パッケージ・リストがStringでない場合、または空文字列を要素として含む場合、JMXProviderException
がスローされます。
空でないプロバイダ・パッケージ・リストが存在する場合、ファクトリにより、リストの各pkg
要素に対して、クラスのロードが試行されます。
pkg.protocol.ClientProvider
newJMXConnector
のenvironment
パラメータにキーjmx.remote.protocol.provider.class.loader
が含まれる場合、関連付けられた値がプロバイダをロードするために使用するクラス・ローダーになります。 関連付けられた値がClassLoader
のインスタンスでない場合は、IllegalArgumentException
がスローされます。
environment
パラメータ内にjmx.remote.protocol.provider.class.loader
キーが含まれない場合、呼出しスレッドのコンテンツ・クラス・ローダーが使用されます。
このクラスのロード時にClassNotFoundException
がスローされた場合、ハンドラの検索はリスト内の次の要素に引き継がれます。
それ以外の場合、JMXProviderException
により、検出されたプロバイダに関する問題が報告されます。この例外のcause
は、次のように潜在的な例外を示します。
- クラスのロード時に
ClassNotFoundException
以外の例外がスローされた場合、これがcauseになります。 - クラスの
Class.newInstance()
によって例外がスローされた場合、これがcauseになります。
プロバイダ・パッケージ・リストが存在しないデフォルト状態を含めて、前述のステップでプロバイダが検出されなかった場合、実装はprotocol
に対して固有のプロバイダを使用します。固有のプロバイダがない場合は、MalformedURLException
をスローします。 その他の方法でプロバイダを検索することもできます。 たとえば、サービス・インタフェースがJMXConnectorProvider
の「サービス・プロバイダ」をサポートします。
すべての実装は、文字列rmi
で指定される、デフォルトのRMIトランスポートを使用するRMIコネクタ・プロトコルをサポートしている必要があります。
プロバイダが見つかった場合、newJMXConnector
メソッドの結果が、そのプロバイダ上でnewJMXConnector
を呼び出した結果に一致します。
JMXConnectorProvider
に渡されたMap
パラメータは、JMXConnectorFactory.newJMXConnector
のenvironment
パラメータ内にあったすべてのエントリを含む、新しい読取り専用Map
になります。 さらに、environment
パラメータ内にjmx.remote.protocol.provider.class.loader
キーが存在しない場合、新しい読取り専用Map
に追加されます。 呼出しスレッドのコンテキスト・クラス・ローダーが値として関連付けられます。
- 導入されたバージョン:
- 1.5
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static String
DEFAULT_CLASS_LOADER
デフォルトのクラス・ローダーを指定する属性の名前です。static String
PROTOCOL_PROVIDER_CLASS_LOADER
プロトコル・プロバイダをロードするクラス・ローダーを指定する属性の名前です。static String
PROTOCOL_PROVIDER_PACKAGES
プロトコル・ハンドラの検索時に照会されるプロバイダ・パッケージを指定する属性の名前です。 -
メソッドのサマリー
修飾子と型 メソッド 説明 static JMXConnector
connect(JMXServiceURL serviceURL)
指定されたアドレスのコネクタ・サーバーとの接続を作成します。static JMXConnector
connect(JMXServiceURL serviceURL, Map<String,?> environment)
指定されたアドレスのコネクタ・サーバーとの接続を作成します。static JMXConnector
newJMXConnector(JMXServiceURL serviceURL, Map<String,?> environment)
指定されたアドレスのコネクタ・サーバーのコネクタ・クライアントを作成します。
-
フィールド詳細
-
DEFAULT_CLASS_LOADER
public static final String DEFAULT_CLASS_LOADERデフォルトのクラス・ローダーを指定する属性の名前です。 このクラス・ローダーは、リモート
MBeanServerConnection
呼び出しからの戻り値と例外を直列化復元するために使用されます。 この属性には、値として、ClassLoader
のインスタンスが関連付けられます。- 関連項目:
- 定数フィールド値
-
PROTOCOL_PROVIDER_PACKAGES
public static final String PROTOCOL_PROVIDER_PACKAGESプロトコル・ハンドラの検索時に照会されるプロバイダ・パッケージを指定する属性の名前です。 この属性には、値として、縦棒(
|
)で区切られたパッケージ名から成る文字列が関連付けられます。- 関連項目:
- 定数フィールド値
-
PROTOCOL_PROVIDER_CLASS_LOADER
public static final String PROTOCOL_PROVIDER_CLASS_LOADERプロトコル・プロバイダをロードするクラス・ローダーを指定する属性の名前です。 この属性には、値として、
ClassLoader
のインスタンスが関連付けられます。- 関連項目:
- 定数フィールド値
-
-
メソッドの詳細
-
connect
public static JMXConnector connect(JMXServiceURL serviceURL) throws IOException指定されたアドレスのコネクタ・サーバーとの接続を作成します。
このメソッドは、
connect(serviceURL, null)
と同等です。- パラメータ:
serviceURL
- 接続先コネクタ・サーバーのアドレス。- 戻り値:
connect
メソッドが呼び出されたJMXConnector
。- 例外:
NullPointerException
-serviceURL
がnullである場合。IOException
- 通信障害によりコネクタ・クライアントを作成できない場合、または接続を確立できない場合。SecurityException
- セキュリティ上の理由により接続を確立できない場合。
-
connect
public static JMXConnector connect(JMXServiceURL serviceURL, Map<String,?> environment) throws IOException指定されたアドレスのコネクタ・サーバーとの接続を作成します。
このメソッドは、次と同等です。
JMXConnector conn = JMXConnectorFactory.newJMXConnector(serviceURL, environment); conn.connect(environment);
- パラメータ:
serviceURL
- 接続先コネクタ・サーバーのアドレス。environment
- 接続の確立方法を決定付ける属性のセット。 このパラメータはnullも可。 このマップ内のキーはStringでなければならない。 関連付けられている個々の値にどの型が適切かは、属性によって決定される。 この呼出しがenvironment
を変更することはない。- 戻り値:
- 新しく確立された接続を表す
JMXConnector
。 このメソッドが正常に呼び出されると、そのたびに異なったオブジェクトが生成される。 - 例外:
NullPointerException
-serviceURL
がnullである場合。IOException
- 通信障害によりコネクタ・クライアントを作成できない場合、または接続を確立できない場合。SecurityException
- セキュリティ上の理由により接続を確立できない場合。
-
newJMXConnector
public static JMXConnector newJMXConnector(JMXServiceURL serviceURL, Map<String,?> environment) throws IOException指定されたアドレスのコネクタ・サーバーのコネクタ・クライアントを作成します。 作成されたクライアントは、
connect
メソッドが呼び出されるまで接続されません。- パラメータ:
serviceURL
- 接続先コネクタ・サーバーのアドレス。environment
- 接続の確立方法を決定付ける属性のセット。 このパラメータはnullも可。 このマップ内のキーはStringでなければならない。 関連付けられている個々の値にどの型が適切かは、属性によって決定される。 この呼出しがenvironment
を変更することはない。- 戻り値:
- 新しいコネクタ・クライアントを表す
JMXConnector
。 このメソッドが正常に呼び出されると、そのたびに異なったオブジェクトが生成される。 - 例外:
NullPointerException
-serviceURL
がnullである場合。IOException
- 通信障害によりコネクタ・クライアントを作成できない場合。MalformedURLException
-serviceURL
内にプロトコルのプロバイダが存在しない場合。JMXProviderException
-serviceURL
内にプロトコルのプロバイダが存在するが、何らかの理由で使用できない場合。
-