|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.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
- クラスおよびリソースのロード元となる URLpublic MLet(URL[] urls, ClassLoader parent)
urls
- クラスおよびリソースのロード元となる URLparent
- 委譲用の親クラスローダpublic MLet(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory)
urls
- クラスおよびリソースのロード元となる URLparent
- 委譲用の親クラスローダfactory
- URL の作成時に使用する URLStreamHandlerFactorypublic MLet(URL[] urls, boolean delegateToCLR)
urls
- クラスおよびリソースのロード元となる URLdelegateToCLR
- 親 ClassLoader でも URL でもクラスが見つからず、MLet が MBeanServer の ClassLoaderRepository
へ処理を委譲する必要がある場合は truepublic MLet(URL[] urls, ClassLoader parent, boolean delegateToCLR)
urls
- クラスおよびリソースのロード元となる URLparent
- 委譲用の親クラスローダdelegateToCLR
- 親 ClassLoader でも URL でもクラスが見つからず、MLet が MBeanServer の ClassLoaderRepository
へ処理を委譲する必要がある場合は truepublic 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
内の addURL
URLClassLoader
内の addURL
url
- URL の検索パスに追加する URLpublic void addURL(String url) throws ServiceNotFoundException
MLetMBean
内の addURL
url
- 追加する URL
ServiceNotFoundException
- 異常な形式の URL が指定された場合public URL[] getURLs()
MLetMBean
内の getURLs
URLClassLoader
内の getURLs
public Set getMBeansFromURL(URL url) throws ServiceNotFoundException
MLetMBean
内の getMBeansFromURL
url
- ロードされるテキストファイルの URL に相当する URL オブジェクト
ServiceNotFoundException
- m-let テキストファイルに MLET タグが含まれていない場合、m-let テキストファイルが見つからない場合、MLET タグの必須属性が指定されていない場合、または url の値が null である場合
IllegalStateException
- MLet MBean が MBeanServer に登録されていない場合public Set getMBeansFromURL(String url) throws ServiceNotFoundException
MLetMBean
内の getMBeansFromURL
url
- ロードされるテキストファイルの URL に相当する String オブジェクト
ServiceNotFoundException
- m-let テキストファイルに MLET タグが含まれていない場合、m-let テキストファイルが見つからない場合、MLET タグの必須属性が指定されていない場合、または url の形式が異常である場合
IllegalStateException
- MLet MBean が MBeanServer に登録されていない場合public String getLibraryDirectory()
MLetMBean
内の getLibraryDirectory
setLibraryDirectory(java.lang.String)
public void setLibraryDirectory(String libdir)
MLetMBean
内の setLibraryDirectory
libdir
- ライブラリローダによって使用されるディレクトリgetLibraryDirectory()
public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
MBeanRegistration
内の preRegister
server
- MBean サーバ。m-let はここに登録されるname
- m-let のオブジェクト名
Exception
- この例外は、MBean サーバにキャッチされ、MBeanRegistrationException として再スローされるpublic void postRegister(Boolean registrationDone)
MBeanRegistration
内の postRegister
registrationDone
- m-let が MBean サーバに正常に登録されたかどうかを示す。登録に失敗した場合の値は falsepublic void preDeregister() throws Exception
MBeanRegistration
内の preDeregister
java.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
内の writeExternal
out
- 書き込み先のオブジェクト出力ストリーム
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
内の readExternal
in
- 読み込み元のオブジェクト入力ストリーム
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
内の findClass
name
- クラスの名前
ClassNotFoundException
- 指定されたクラスが見つからない場合protected String findLibrary(String libname)
OSName/OSArch/OSVersion/lib/nativelibname
) で検索が行われます。
JAR ファイル内で Solaris SPARC 5.7 のライブラリのステータスを検索するとき:
このメソッドの戻り値が null
(このクラスローダでロードされた JAR ファイル内にライブラリが見つからない) の場合、VM は、java.library.path
プロパティとして指定されたパスを付加してライブラリを検索します。
ClassLoader
内の findLibrary
libname
- ライブラリ名
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 も参照してください。