|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
javax.management.loading.MLet
public class MLet
リモート URL から着信した MBean サーバ内の MBean (複数可) をインスタンス化し、登録することができます。m-let は管理アプレットのショートカットです。m-let サービスは、取得する MBean の情報を指定する m-let テキストファイルをロードすることにより、MBean の処理を行います。各 MBean の情報は、単一のタグインスタンス (MLET タグ) で指定します。m-let テキストファイルの位置は URL で指定します。
MLET タグの構文は次のとおりです。
<MLET
CODE = class | OBJECT = serfile
ARCHIVE = "archiveList"
[CODEBASE = codebaseURL]
[NAME = mbeanname]
[VERSION = version]
>
[arglist]
</MLET>
以下にそれぞれの意味を示します。
CODE = classARCHIVE 属性で指定された .jar ファイルのうちいずれかに、MBean のコンパイル済み .class ファイルが含まれている必要があります。CODE か OBJECT のいずれかが存在している必要があります。 OBJECT = serfile.ser ファイルを指定する属性です。このファイルは、ARCHIVE 属性で指定された .jar ファイルのうちいずれかに含まれている必要があります。.jar ファイルにディレクトリ階層が含まれる場合は、この階層内のファイルパスを指定します。そうしないと、一致は見つかりません。CODE か OBJECT のいずれかが存在している必要があります。ARCHIVE = "archiveList".jar ファイルを指定する必須属性です。.jar ファイルのうちいずれかに、CODE または OBJECT 属性で指定されたファイルが含まれている必要があります。アーカイブリストに複数のファイルが含まれる場合、次の条件が必要になります。
.jar ファイルが、コードベース URL で指定されたディレクトリに格納されている必要があります。CODEBASE = codebaseURLARCHIVE 属性で指定された .jar ファイルを含むディレクトリを識別します。この属性を指定するのは、.jar ファイルが m-let テキストファイルと同じディレクトリにない場合のみです。この属性が指定されていない場合、m-let テキストファイルの基底 URL が使用されます。 NAME = mbeannamegetDomain() メソッドを呼び出して、この情報を取得します。VERSION = version.jar ファイルのバージョン番号を指定するオプション属性です。バージョン番号を使用すると、m-let テキストファイルの次回ロード時に、サーバから .jar ファイルをロードして、キャッシュ内にローカルに格納されているファイルを更新することができます。version には、0 以上の複数の 10 進整数をピリオドで区切って指定します。
ARG TYPE=argumentType VALUE=value>
引数リスト内に指定する引数の型は、Java プリミティブ型か Java 基本型でなければなりません (java.lang.Boolean、java.lang.Byte、java.lang.Short、java.lang.Long、java.lang.Integer、java.lang.Float、java.lang.Double、java.lang.String)。
m-let サービスは、java.net.URLClassLoader を拡張します。このサービスを使って、エージェントの VM 内のリモートクラスおよび jar ファイルをロードできます。
注 - MLet クラスローダは、MBeanServerFactory.getClassLoaderRepository(javax.management.MBeanServer) を使って、ロードされた jar ファイル内に見つからないクラスをロードします。
| コンストラクタの概要 | |
|---|---|
MLet()
委譲関係の親になっているデフォルトの ClassLoader を使って、新しい MLet を構築します。 |
|
MLet(URL[] urls)
委譲関係の親になっているデフォルトの ClassLoader を使って、指定された URL の新しい MLet を構築します。 |
|
MLet(URL[] urls,
boolean delegateToCLR)
委譲関係の親になっているデフォルトの ClassLoader を使って、指定された URL の新しい MLet を構築します。 |
|
MLet(URL[] urls,
ClassLoader parent)
指定された URL の新しい MLet を構築します。 |
|
MLet(URL[] urls,
ClassLoader parent,
boolean delegateToCLR)
指定された URL の新しい MLet を構築します。 |
|
MLet(URL[] urls,
ClassLoader parent,
URLStreamHandlerFactory factory)
指定された URL、親クラスローダ、および URLStreamHandlerFactory の新しい MLet を構築します。 |
|
MLet(URL[] urls,
ClassLoader parent,
URLStreamHandlerFactory factory,
boolean delegateToCLR)
指定された URL、親クラスローダ、および URLStreamHandlerFactory の新しい MLet を構築します。 |
|
| メソッドの概要 | |
|---|---|
void |
addURL(String url)
指定された URL を、クラスおよびリソースを検索するための URL リストに追加します。 |
void |
addURL(URL url)
指定された URL を、クラスおよびリソースを検索するための URL リストに追加します。 |
protected URL |
check(String version,
URL codebase,
String jarfile,
javax.management.loading.MLetContent mlet)
このメソッドは、キャッシュ機能とバージョン管理機能をサポートするためにこのサービスを拡張するときオーバーライドされます。 |
protected Class |
findClass(String name)
再定義予定のクラスローダの main メソッドです。 |
protected String |
findLibrary(String libname)
ネイティブライブラリの絶対パス名を帰します。 |
String |
getLibraryDirectory()
ネイティブライブラリをメモリにロードする前に格納するライブラリローダによって現在使用されているディレクトリを取得します。 |
Set |
getMBeansFromURL(String url)
エージェントに追加される予定の MBean を定義する MLET タグを含むテキストファイルをロードします。 |
Set |
getMBeansFromURL(URL url)
エージェントに追加される予定の MBean を定義する MLET タグを含むテキストファイルをロードします。 |
URL[] |
getURLs()
クラスおよびリソースをロードするための URL の検索パスを返します。 |
Class |
loadClass(String name,
ClassLoaderRepository clr)
この MLet の URL 内にクラスが見つからない場合、指定された ClassLoaderRepository を使ってクラスをロードします。 |
void |
postDeregister()
MBean サーバから登録解除したあと、m-let が必要なオペレーションを実行できるようにします。 |
void |
postRegister(Boolean registrationDone)
MBean サーバへの登録が成功または失敗したあと、m-let が必要なオペレーションを実行できるようにします。 |
void |
preDeregister()
MBean サーバから登録解除する前に、m-let が必要なオペレーションを実行できるようにします。 |
ObjectName |
preRegister(MBeanServer server,
ObjectName name)
MBean サーバに登録される前に、m-let が必要なオペレーションを実行できるようにします。 |
void |
readExternal(ObjectInput in)
指定された ObjectInput から、この MLet の内容を復元します。 |
void |
setLibraryDirectory(String libdir)
ネイティブライブラリをメモリにロードする前に格納するライブラリローダによって使用されるディレクトリを設定します。 |
void |
writeExternal(ObjectOutput out)
この MLet の内容を、指定された ObjectOutput に保存します。 |
| クラス java.net.URLClassLoader から継承されたメソッド |
|---|
definePackage, findResource, findResources, getPermissions, newInstance, newInstance |
| クラス java.security.SecureClassLoader から継承されたメソッド |
|---|
defineClass, defineClass |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| インタフェース javax.management.loading.MLetMBean から継承されたメソッド |
|---|
getResource, getResourceAsStream, getResources |
| コンストラクタの詳細 |
|---|
public MLet()
public MLet(URL[] urls)
urls - クラスおよびリソースのロード元となる URL
public MLet(URL[] urls,
ClassLoader parent)
urls - クラスおよびリソースのロード元となる URLparent - 委譲用の親クラスローダ
public MLet(URL[] urls,
ClassLoader parent,
URLStreamHandlerFactory factory)
urls - クラスおよびリソースのロード元となる URLparent - 委譲用の親クラスローダfactory - URL の作成時に使用する URLStreamHandlerFactory
public MLet(URL[] urls,
boolean delegateToCLR)
urls - クラスおよびリソースのロード元となる URLdelegateToCLR - 親 ClassLoader でも URL でもクラスが見つからず、MLet が MBeanServer の ClassLoaderRepository へ処理を委譲する必要がある場合は true
public MLet(URL[] urls,
ClassLoader parent,
boolean delegateToCLR)
urls - クラスおよびリソースのロード元となる URLparent - 委譲用の親クラスローダdelegateToCLR - 親 ClassLoader でも URL でもクラスが見つからず、MLet が MBeanServer の ClassLoaderRepository へ処理を委譲する必要がある場合は true
public MLet(URL[] urls,
ClassLoader parent,
URLStreamHandlerFactory factory,
boolean delegateToCLR)
urls - クラスおよびリソースのロード元となる URLparent - 委譲用の親クラスローダfactory - URL の作成時に使用する URLStreamHandlerFactorydelegateToCLR - 親 ClassLoader でも URL でもクラスが見つからず、MLet が MBeanServer の ClassLoaderRepository へ処理を委譲する必要がある場合は true| メソッドの詳細 |
|---|
public void addURL(URL url)
MLetMBean 内の addURLURLClassLoader 内の addURLurl - URL の検索パスに追加する URL
public void addURL(String url)
throws ServiceNotFoundException
MLetMBean 内の addURLurl - 追加する URL
ServiceNotFoundException - 異常な形式の URL が指定された場合public URL[] getURLs()
MLetMBean 内の getURLsURLClassLoader 内の getURLs
public Set getMBeansFromURL(URL url)
throws ServiceNotFoundException
MLetMBean 内の getMBeansFromURLurl - ロードされるテキストファイルの URL に相当する URL オブジェクト
ServiceNotFoundException - m-let テキストファイルに MLET タグが含まれていない場合、m-let テキストファイルが見つからない場合、MLET タグの必須属性が指定されていない場合、または url の値が null である場合
IllegalStateException - MLet MBean が MBeanServer に登録されていない場合
public Set getMBeansFromURL(String url)
throws ServiceNotFoundException
MLetMBean 内の getMBeansFromURLurl - ロードされるテキストファイルの URL に相当する String オブジェクト
ServiceNotFoundException - m-let テキストファイルに MLET タグが含まれていない場合、m-let テキストファイルが見つからない場合、MLET タグの必須属性が指定されていない場合、または url の形式が異常である場合
IllegalStateException - MLet MBean が MBeanServer に登録されていない場合public String getLibraryDirectory()
MLetMBean 内の getLibraryDirectorysetLibraryDirectory(java.lang.String)public void setLibraryDirectory(String libdir)
MLetMBean 内の setLibraryDirectorylibdir - ライブラリローダによって使用されるディレクトリgetLibraryDirectory()
public ObjectName preRegister(MBeanServer server,
ObjectName name)
throws Exception
MBeanRegistration 内の preRegisterserver - MBean サーバ。m-let はここに登録されるname - m-let のオブジェクト名
Exception - この例外は、MBean サーバにキャッチされ、MBeanRegistrationException として再スローされるpublic void postRegister(Boolean registrationDone)
MBeanRegistration 内の postRegisterregistrationDone - m-let が MBean サーバに正常に登録されたかどうかを示す。登録に失敗した場合の値は false
public void preDeregister()
throws Exception
MBeanRegistration 内の preDeregisterjava.langException - この例外は、MBean サーバにキャッチされ、MBeanRegistrationException として再スローされる
Exception - この例外は、MBean サーバにキャッチされ、MBeanRegistrationException として再スローされるpublic void postDeregister()
MBeanRegistration 内の postDeregister
public void writeExternal(ObjectOutput out)
throws IOException,
UnsupportedOperationException
この MLet の内容を、指定された ObjectOutput に保存します。このメソッドは、すべての実装でサポートされるわけではありません。このメソッドをサポートしない実装は、UnsupportedOperationException をスローします。このメソッドをサポートしたい場合、またはデータの書き込み形式を変更したい場合は、サブクラスでこのメソッドをオーバーライドします。
データの書き込み形式は未指定ですが、writeExternal(java.io.ObjectOutput) をサポートする実装は、readExternal(java.io.ObjectInput) もサポートする必要があります。つまり、writeExternal(java.io.ObjectOutput) に書き込まれたデータを readExternal(java.io.ObjectInput) で読み取ることができなければなりません。
Externalizable 内の writeExternalout - 書き込み先のオブジェクト出力ストリーム
IOException - 書き込み中に問題が発生した場合
UnsupportedOperationException - この実装がこのオペレーションをサポートしない場合
public void readExternal(ObjectInput in)
throws IOException,
ClassNotFoundException,
UnsupportedOperationException
指定された ObjectInput から、この MLet の内容を復元します。このメソッドは、すべての実装でサポートされるわけではありません。このメソッドをサポートしない実装は、UnsupportedOperationException をスローします。このメソッドをサポートしたい場合、またはデータの読み取り形式を変更したい場合は、サブクラスでこのメソッドをオーバーライドします。
データの読み取り形式は未指定ですが、readExternal(java.io.ObjectInput) をサポートする実装は、writeExternal(java.io.ObjectOutput) もサポートする必要があります。つまり、writeExternal(java.io.ObjectOutput) に書き込まれたデータを readExternal(java.io.ObjectInput) で読み取ることができなければなりません。
Externalizable 内の readExternalin - 読み込み元のオブジェクト入力ストリーム
IOException - 読み取り中に問題が発生した場合
ClassNotFoundException - 復元しようとしているオブジェクトに対応するクラスが見つからない場合
UnsupportedOperationException - この実装がこのオペレーションをサポートしない場合
public Class loadClass(String name,
ClassLoaderRepository clr)
throws ClassNotFoundException
この MLet の URL 内にクラスが見つからない場合、指定された ClassLoaderRepository を使ってクラスをロードします。ClassLoaderRepository が null の場合、この MLet の URL 内にクラスが見つからないと、ただちに ClassNotFoundException がスローされます。
name - ロード対象クラスの名前clr - この ClassLoader 内に指定のクラスが見つからない場合に使用される ClassLoaderRepository。null も可
ClassNotFoundException - この ClassLoader 内にも指定の ClassLoaderRepository 内にも指定のクラスが見つからない場合
protected Class findClass(String name)
throws ClassNotFoundException
URLClassLoader 内の findClassname - クラスの名前
ClassNotFoundException - 指定されたクラスが見つからない場合protected String findLibrary(String libname)
OSName/OSArch/OSVersion/lib/nativelibname) で検索が行われます。
JAR ファイル内で Solaris SPARC 5.7 のライブラリのステータスを検索するとき:
このメソッドの戻り値が null (このクラスローダでロードされた JAR ファイル内にライブラリが見つからない) の場合、VM は、java.library.path プロパティとして指定されたパスを付加してライブラリを検索します。
ClassLoader 内の findLibrarylibname - ライブラリ名
System.loadLibrary(String),
System.mapLibraryName(String)
protected URL check(String version,
URL codebase,
String jarfile,
javax.management.loading.MLetContent mlet)
throws Exception
このメソッドは、キャッシュ機能とバージョン管理機能をサポートするためにこのサービスを拡張するときオーバーライドされます。MLet ファイルからバージョン、コードベース、および jar ファイルが抽出されると呼び出され、指定の MBean をロードしても問題がないかを確認したり、指定の URL を別の URL で置き換えるために使用されます。
このメソッドのデフォルト実装は、未変更のcodebase を返します。
version - ローカルに格納された .jar ファイルのバージョン番号codebase - リモート .jar ファイルの基底 URLjarfile - ロードされる .jar ファイルの名前mlet - MLET タグを示す MLetContent インスタンス
Exception - 何らかの原因で MBean がロードされなかった場合。この例外は、getMBeansFromURL によって返されたセットに追加される
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。