javax.management.loading
类 MLet

java.lang.Object
  继承者 java.lang.ClassLoader
      继承者 java.security.SecureClassLoader
          继承者 java.net.URLClassLoader
              继承者 javax.management.loading.MLet
所有已实现的接口:
Externalizable, Serializable, MLetMBean, MBeanRegistration
直接已知子类:
PrivateMLet

public class MLet
   
   
   
extends URLClassLoader
implements MLetMBean, MBeanRegistration, Externalizable

允许实例化和注册来自远程 URL 的 MBean 服务器中一个或几个 MBean。M-let 是管理 applet 的捷径。m-let 服务通过加载一个 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 = class
此属性指定了要获取的 MBean 的 Java 类的全名,包括包名称。编译后的 MBean 的 .class 文件必须包含在 ARCHIVE 属性指定的 .jar 文件中。CODEOBJECT 必须存在。
OBJECT = serfile
此属性指定了 .ser 文件,该文件包含要获取的 MBean 的序列化表示形式。此文件必须包含在 ARCHIVE 属性指定的 .jar 文件中。如果 .jar 文件包含目录层次结构,则需要指定此层次结构中的文件路径。否则将找不到匹配项。CODEOBJECT 必须存在。
ARCHIVE = "archiveList"
此属性是必需的,它指定了一个或多个 .jar 文件,这些文件包含要获取的 MBean 使用的 MBean 或其他资源。.jar 文件之一必须包含 CODEOBJECT 属性所指定的文件。如果 archivelist 包含多个文件:
  • 必须用逗号 (,) 将每个文件与它后面的文件隔开。
  • archivelist 必须用双引号引起来。
archivelist 中的所有 .jar 文件必须存储在代码基 URL 指定的目录中。
CODEBASE = codebaseURL
此可选属性指定了要获取的 MBean 的代码基 URL。它标识了包含 ARCHIVE 指定的 .jar 文件的目录。仅当 .jar 文件与 m-let 文本文件不在同一目录中时,指定此属性。如果不指定此属性,则使用 m-let 文本文件的基本 URL。
NAME = mbeanname
当 m-let 已注册 MBean 实例时,此可选属性指定了要分配给 MBean 实例的对象名称。如果 mbeanname 以冒号字符 (:) 开始,则对象名称的域部分是 MBean 服务器的默认域,可由 MBeanServer.getDefaultDomain() 返回。
VERSION = version
此可选属性指定了要获取的 MBean 版本号和关联的 .jar 文件。此版本号可用于指定从服务器加载 .jar 文件,以便在下次调用 m-let 文本文件时更新存储在本地缓存中的文件。version 必须是一系列非负的十进制整数,每个整数都通过句点与它前面的整数隔开。
arglist
此可选属性指定了将被实例化的 MBean 的一个或多个参数的列表。此列表描述了要传递给 MBean 的构造方法的参数。使用以下语法指定 arglist 中的每一项:

<ARG TYPE=argumentTypeVALUE=value>

其中:
  • argumentType 是将作为参数传递给 MBean 的构造方法的参数类型。

参数列表中的参数类型应为 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 文本文件时,创建并注册该文件中所指定的每个 MBean 的实例。

m-let 服务扩展了 java.net.URLClassLoader,可以用它加载代理的 VM 中的远程类和 jar 文件。

注意 - MLet 类加载器使用 MBeanServerFactory.getClassLoaderRepository(javax.management.MBeanServer) 来加载在已加载 jar 文件中找不到的类。

从以下版本开始:
1.5
另请参见:
序列化表格

构造方法摘要
MLet()
          使用默认的代理父类加载器构造新的 MLet。
MLet(URL[] urls)
          使用默认的代理父类加载器为指定的 URL 构造新的 MLet。
MLet(URL[] urls, boolean delegateToCLR)
          使用默认的代理父类加载器为指定的 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。
 
方法摘要
 voidaddURL(String url)
          将指定的 URL 追加到 URL 列表中,以便搜索类和资源。
 voidaddURL(URL url)
          将指定的 URL 追加到 URL 列表中,以便搜索类和资源。
protected  URLcheck(String version, URL codebase, String jarfile, MLetContent mlet)
          当扩展此服务来支持缓存和版本控制时,要重写此方法。
protected  Class<?>findClass(String name)
          这是要重新定义的类加载器的主要方法。
protected  StringfindLibrary(String libname)
          返回本机库的绝对路径名称。
 StringgetLibraryDirectory()
          获取库加载器在将本机库加载到内存中之前用于存储这些本机库的当前目录。
 Set<Object>getMBeansFromURL(String url)
          加载一个包含 MLET 标记的文本文件,这些标记定义了要添加到 MBean 服务器的 MBean。
 Set<Object>getMBeansFromURL(URL url)
          加载一个包含 MLET 标记的文本文件,这些标记定义了要添加到 MBean 服务器的 MBean。
 URL[]getURLs()
          返回用于加载类和资源的 URL 搜索路径。
 Class<?>loadClass(String name, ClassLoaderRepository clr)
          如果在此 MLet 的 URL 中找不到某个类,则使用给定的 ClassLoaderRepository 加载该类。
 voidpostDeregister()
          允许 m-let 在已从 MBean 服务器注销之后执行任何所需要的操作。
 voidpostRegister(Boolean registrationDone)
          允许 m-let 在已注册到 MBean 服务器之后或注册失败之后执行任何所需要的操作。
 voidpreDeregister()
          允许 m-let 在由 MBean 服务器注销之前执行任何所需要的操作。
 ObjectNamepreRegister(MBeanServer server, ObjectName name)
          允许在将 m-let 注册到 MBean 之前执行任何所需要的操作。
 voidreadExternal(ObjectInput in)
          从给定的 ObjectInput 恢复此 MLet 的内容。
 voidsetLibraryDirectory(String libdir)
          设置在将本机库加载到内存中之前库加载器用来存储这些本机库的目录。
 voidwriteExternal(ObjectOutput out)
          将此 MLet 的内容保存到给定的 ObjectOutput
 
从类 java.net.URLClassLoader 继承的方法
definePackage, findResource, findResources, getPermissions, newInstance, newInstance
 
从类 java.security.SecureClassLoader 继承的方法
defineClass, defineClass
 
从类 java.lang.ClassLoader 继承的方法
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
从接口 javax.management.loading.MLetMBean 继承的方法
getResource, getResourceAsStream, getResources
 

构造方法详细信息

MLet

public MLet()
使用默认的代理父类加载器构造新的 MLet。


MLet

public MLet(URL[] urls)
使用默认的代理父类加载器为指定的 URL 构造新的 MLet。首先在父类加载器中搜索 URL,然后按照为类和资源指定的顺序搜索 URL。

参数:
urls - 从其位置加载类和资源的 URL。

MLet

public MLet(URL[] urls,
            ClassLoader parent)
为给定的 URL 构造新的 MLet。首先在指定的父类加载器中搜索 URL,然后按照为类和资源指定的顺序搜索 URL。该父参数将用作代理的父类加载器。

参数:
urls - 从其指示的位置加载类和资源的 URL。
parent - 代理的父类加载器。

MLet

public MLet(URL[] urls,
            ClassLoader parent,
            URLStreamHandlerFactory factory)
为指定的 URL、父类加载器和 URLStreamHandlerFactory 构造新的 MLet。该父参数将用作代理的父类加载器。在创建新 URL 时,该工厂参数将用作获取协议处理程序的流处理程序工厂。

参数:
urls - 从其指示的位置加载类和资源的 URL。
parent - 代理的父类加载器。
factory - 创建 URL 时要使用的 URLStreamHandlerFactory。

MLet

public MLet(URL[] urls,
            boolean delegateToCLR)
使用默认的代理父类加载器为指定的 URL 构造新的 MLet。首先在父类加载器中搜索 URL,然后按照为类和资源指定的顺序搜索 URL。

参数:
urls - 从其指示的位置加载类和资源的 URL。
delegateToCLR - 如果该参数为 true,则当在父类加载器或 URL 中均未找到某个类时,MLet 应该委托给该类的包含 MBeanServer 的 ClassLoaderRepository

MLet

public MLet(URL[] urls,
            ClassLoader parent,
            boolean delegateToCLR)
为给定的 URL 构造新的 MLet。首先在指定的父类加载器中搜索 URL,然后按照为类和资源指定的顺序搜索 URL。该父参数将用作代理的父类加载器。

参数:
urls - 从其指示的位置加载类和资源的 URL。
parent - 代理的父类加载器。
delegateToCLR - 如果该参数为 true,则当在父类加载器或 URL 中均未找到某个类时,MLet 应该委托给该类的包含 MBeanServer 的 ClassLoaderRepository